2013-08-07 9 views
8

Ho un combo comeExtJS 4.1 Combo - Come rendere di selezione funzione fuoco Quando la chiamata 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 
       } 
      } 
     } 

Ma quando utilizza

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

Poi alert(records[0].get('mydata')); // records is undefined fallire. Come risolvere questo problema grazie. Questo è il mio codice http://jsfiddle.net/LZ8XU/

risposta

13

Per qualche motivo, il metodo di selezione del ComboBox Ext non attiva l'evento select. Mi sembra dalla tua domanda che vuoi impostare un valore e attivare manualmente l'evento select. Se è così, ci sono un paio di altri campi che sono necessari per passare; in particolare lo stesso comboBox e il record selezionato.

Ecco un'implementazione che lo fa.

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

Proprio così, l'evento select non viene attivato automaticamente quando si chiama il metodo select(). Dovrebbero includere un parametro booleano suppressEvent come fanno per il metodo di commutazione del pulsante. –

+0

@Kyle Fransham: puoi aiutarmi con http://stackoverflow.com/questions/21521112/extjs-combobox-change-even-code-executed-on-page-load –

4

Perché non ascoltare invece l'evento change?

+0

per favore aiutami con http: // StackOverflow .com/domande/21521112/extjs-combobox-cambio-anche-codice-eseguito-on-page-load –

Problemi correlati