2012-04-12 13 views
1

Ich benutze Listner vor der Abfrage, um eine Combobox zu filtern. alles ist in Ordnung während der Filterung, aber ich habe ein Problem wie:Auto Auswahl Problem mit onLoad() in extjs

wenn wir gewünschte Zeichen in Combobox zu filtern sie werden automatisch ausgewählt ..so, wenn wir neue Zeichen eingeben möchten, müssen wir rechten Pfeil nach drücken Auswahl entfernen oder sonst werden die restlichen Zeichen gelöscht ... bitte helfen Sie, warum dieses Verhalten.

Code:

xtype: 'combo', 
      fieldLabel: 'Label', 
      anchor: '100%', 
      enableKeyEvents: true, 
      allowBlank: false, 
      displayField: 'value', 
      store: 'level1Store', 
      lazyInit: false, 
      mode: 'local', 
      forceSelection: true, 
      disableKeyFilter: true, 
      editable: true, 
      triggerAction: 'all', 
      valueField: 'key', 
      name: 1, 
      ref: 'combo1', 
      id: 'field1' 

Listner Code filtern:

Ext.getCmp('field1').addListener({ 
     beforequery: function (e) { 
      if (e.query && e.query.indexOf('?') != -1) { 
       e.cancel = true; 
       var query = new RegExp(String.format('^{0}', e.query.replace(/\?/g, '[A-Za-z0-9]'))); 
       this.onLoad(); 
       this.store.clearFilter(true); 
       this.store.filter(this.displayField, query); 
      } 
     } 
    }); 

Antwort

1

Sie 2 Dinge tun:

1) Sie dieses Standardverhalten mit Ihrer benutzerdefinierten außer Kraft setzen kann man benötigt.

2) Sie können das Fokusereignis der Combo abhören und den Text abwählen.