PDA

View Full Version : Store Filteration not occur on first click of combo



ucoxk
8 Sep 2010, 12:16 AM
Hi
i want to filter a store on selecting value from combo. when i select first value it does not filter it but on selecting anyother value 2nd time it works well my store has autoLoad=true here is my code


xtype: 'combo'
,fieldLabel: 'Online Type'
,name:'OnlineType'
,id:'cmbOnlineType'
,store: common.getStore(accounts20.dataForms.onlinePayments._storeOnlineType, accounts20.dataForms.onlinePayments)
,displayField:'OnlineType'
,valueField:'OnlineType'
,mode:'local' // important property when using store
,typeAhead: true
,triggerAction: 'all'
,selectOnFocus:true
,allowBlank:false
,forceSelection:true
,editable:true
,tabIndex:4
,width : 188
,listeners:{
select:function(){
if(Ext.getCmp('onlinePay-hdnMode').value!="E")
{
Ext.getCmp('onlinePay-cmbChequeNo').clearValue();
Ext.getCmp('onlinePay-cmbChequeNo').getStore().removeAll();
Ext.getCmp('onlinePay-cmbCrAccount').clearValue();
}
var store = Ext.getCmp('onlinePay-cmbCrAccount').getStore();
if(this.getValue()=="Cheque" || this.getValue()=="Internet/Mobile")
{
Ext.getCmp('onlinePay-chkIncCharges').setValue(false);
if(this.getValue()=="Internet/Mobile")
{
Ext.getCmp('onlinePay-cmbChequeNo').disable();
Ext.getCmp('onlinePay-chkIncCharges').disable();
}else{
Ext.getCmp('onlinePay-cmbChequeNo').enable();
Ext.getCmp('onlinePay-chkIncCharges').enable();
}
//Filter store on bank accounts
store.filter([
{
property : 'AccountTypeId',
value : 'B',//Bank Accounts
anyMatch : true, //optional, defaults to true
caseSensitive: false //optional, defaults to true
} ,
//filter functions can also be passed
{
fn : function(record) {
return record.get('AccountTypeId') == 'B';
},
scope: this
}
]);
}else if(this.getValue()=="Cash"){
Ext.getCmp('onlinePay-chkIncCharges').setValue(true);
Ext.getCmp('onlinePay-chkIncCharges').disable();
Ext.getCmp('onlinePay-cmbChequeNo').disable();
//Filter store on cash accounts
store.filter([
{
property : 'AccountTypeId',
value : 'C',//Cash Accounts
anyMatch : true, //optional, defaults to true
caseSensitive: false //optional, defaults to true
} ,
//filter functions can also be passed
{
fn : function(record) {
return record.get('AccountTypeId') == 'C';
},
scope: this
}
]);
}
}//end of select function
}//end of listener

Condor
8 Sep 2010, 12:17 AM
ComboBox clears the filter when first used. You can avoid this by configuring the combobox with lastQuery:''

ucoxk
9 Sep 2010, 12:39 AM
Thanks it solve my problem