2013-08-07 15 views
8

ich eine Combo haben wieExtJS 4.1 Combo - Wie wählen Sie die Funktion Feuer machen Beim Aufruf combo.setValue

 items: { 
      xtype: 'combo', 
      id: 'combo', 
      queryMode: 'local',     
      displayField: 'name', 
      valueField: 'id', 
      store: Ext.create('Ext.data.Store', { 
       fields: ['id', 'name', 'mydata'], 
       data: [ 
        {'id': '1', 'name': 'John Smith', 'mydata': ["3", "4"]}, 
        {'id': '2', 'name': 'Albert Einstein', 'mydata': ["1", "2"]} 
       ] 
      }), 
      listeners: { 
       select: function(combo, records, eOpts) { 
        alert(records[0].get('mydata')); // records is undefined 
       } 
      } 
     } 

Aber wenn ich mit

var combo = Ext.getCmp('combo'); 
    //combo.select("1"); 
    combo.setValue("1"); 
    combo.fireEvent('select'); 

Dann alert(records[0].get('mydata')); // records is undefined scheitern. Wie kann ich dieses Problem beheben?
Hier ist mein Code http://jsfiddle.net/LZ8XU/

Antwort

13

Aus irgendeinem Grund löst die Select-Methode der Ext-ComboBox das Select-Ereignis nicht aus. Es scheint mir von Ihrer Frage, dass Sie einen Wert festlegen möchten, und das ausgewählte Ereignis manuell auslösen. Wenn dies der Fall ist, gibt es noch ein paar weitere Felder, die man passieren muss; speziell die ComboBox selbst und den ausgewählten Datensatz.

Hier ist eine Implementierung, die es tut.

var combo = Ext.getCmp('combo'); 
var toselect = "Albert Einstein"; 

combo.select(toselect); 
var record = combo.getStore().findRecord('name', toselect); 
combo.fireEvent('select', combo, [record]); 
+0

Das stimmt, das Select-Ereignis wird nicht automatisch ausgelöst, wenn die select() -Methode aufgerufen wird. Sie sollten einen booleschen Parameter suppressEvent wie für die Umschaltmethode der Schaltfläche enthalten. –

+0

@Kyle Fransham: Können Sie mir bitte helfen http://stackoverflow.com/questions/21521112/extjs-combobox-change-even-code-executed-on-page-load –

4

Warum hören Sie nicht stattdessen das Ereignis?

+0

bitte helfen Sie mir mit http: // stackoverflow com/questions/21521112/extjs-combobox-change-even-code-ausgeführt-on-page-load –

Verwandte Themen