2010-08-27 5 views
4

Я хочу отфильтровать хранилище при выборе значения из комбо. когда я выбираю первое значение не фильтрует его, но по выбору anyother стоимости 2-й раз, когда он работает хорошо мой магазин имеет автозагрузку = истина вот мой кодEXTJS: Фильтрующий магазин не появляется первый щелчок комбо

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 

ответ

0

Если событие выбора запускается дважды, используйте конфигурацию буфера, он будет буферизовать событие только для его запуска. Кроме того, ссылка выше представляет собой дубликат http://www.sencha.com/forum/showthread.php?134147, который был исправлен в 4.0.2 (по крайней мере, это говорит наш трекер).

Смежные вопросы