2015-09-03 29 views
5

ben depolamak için dizi atama ediyorum ve iyi değerleri görüntülüyor Ext mağaza nesnesi oluşturarak olmadan dinamik

{ 
    xtype:'combo', 
    fieldLabel:'Test', 
    store:['a','b'] 
} 

altına benzeyen bir combobox var. Bazı eylem anda

i [ 'd', 'e']

aşağıda

comboObje.store=['d','e']; 

gibi saklamak için yeni değerler atayarak çalıştık ile mağaza güncellemek istiyorum ama değil değerleri güncellemek. mağazada yeni değerlerle orjinal değerlerini nasıl değiştirileceğini

.

cevap

6

Sen bindStore kullanarak yeni mağaza oluşturmak ya da sadece loadData kullanarak mevcut mağazaya yeni verileri yükleyebilirsiniz:

bir 'kanıtı kavram' olarak Sencha Fiddle aşağıdaki kodu yapıştırın

combo.store.loadData(['d', 'e'].map(function(item){ return [item]; })); 

Çalışma örneği: https://fiddle.sencha.com/#fiddle/tb1

+2

teşekkür CD .. Yanıtınız için teşekkür ederim ... –

2
versiyonunda 5. yılında

* ve daha yüksek kullanabilirsiniz: Bu önceki sürümlerinde çalışmaz

comboObje.setStore(['d','e']); 

.

Ext.application({ 
    name : 'Fiddle', 

    launch : function() { 
     var panel = Ext.create('Ext.form.Panel', { 
      title: 'test', 
      items: [{ 
       xtype:'combo', 
       fieldLabel:'Test', 
       store:['a','b'] 
      }], 
      renderTo: Ext.getBody() 
     }); 

     panel.down('combo').setStore(['d','e']); 
    } 
}); 
+0

Hayır o Kesinlikle çalışıyor –

+0

çalışmıyor. Şüphesiz. Cevabımı düzenleyeceğim. – Tarabass

+0

Tamam beni keman –

1

bu deneyin:

Eğer 'mağaza' config bir dizi atadığınızda
comboObje.getStore().loadData([{'field1': 'd'}, {'field1': 'e'}]); 

, ExtJS otomatik alan adlarını oluşturur.