2013-08-07 17 views
8

BenExtjs 4.1 Combo - çağrı 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 
       } 
      } 
     } 

gibi bir combo var olduğunda seçme fonksiyonu ateş yakmak Ama alert(records[0].get('mydata')); // records is undefined başarısız Sonra

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

kullanırken nasıl. Bu sorunu nasıl çözebilirim?
İşte benim kodum http://jsfiddle.net/LZ8XU/

cevap

13

Bazı nedenlerle, Ext comboBox seçim yöntemi select olayını tetiklemiyor. Bana bir değer belirlemek ve seçim olayını manuel olarak ateşlemek istediğinizden bana öyle geliyor. Eğer öyleyse, geçmek için gerekli birkaç alan daha vardır; Özellikle comboBox'un kendisi ve seçilen kayıt.

İşte bunu yapan bir uygulama.

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

Bu doğru, select() yöntemini çağırırken select olayı otomatik olarak tetiklenmez. Düğmenin geçiş yöntemi için yaptıkları gibi bir suppressEvent boolean parametresi içermelidir. –

+0

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

4

Neden change etkinliğini dinlemiyorsunuz?

+0

ile bana yardım edebilir misiniz lütfen bana yardım edin: // stackoverflow .com/sorular/21521112/extjs-combobox değiştirme bile-kod-infaz-on sayfalık yük –