2015-09-03 11 views
5

Mam combobox, która wygląda jak poniżejJak zmienić ext js przechowują dane dynamicznie

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

Bez tworzenia Ext sklep obiekt jestem przypisywania tablicy do przechowywania i jest wyświetlanie wartości w porządku.

W pewnym działaniem chcę zaktualizować sklepu z [ „d”, „E”]

Próbowałem przez przypisanie nowych wartości do przechowywania jak poniżej

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

ale nie jest aktualizowanie wartości.

zastąpienie wartości orginalnych nowymi wartościami w sklepie.

Odpowiedz

6

można utworzyć nowy sklep z użyciem bindStore lub po prostu załadować nowe dane do istniejącego sklepu używając loadData:

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

przykład robocza: https://fiddle.sencha.com/#fiddle/tb1

+2

Dziękuję CD .. działa dobrze ... –

2

W wersji 5. * i wyższym można użyć:

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

To nie działa w poprzednich wersjach.

Wklej następujący kod do Sencha Fiddle jako „pojęcia proof-of-”:

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

Nie działa, nie działa –

+0

To działa absolutnie. Bez wątpienia. Będę edytować moją odpowiedź. – Tarabass

+0

OK pozwól mi zrobić skrzypce –

1

Spróbuj tego:

comboObje.getStore().loadData([{'field1': 'd'}, {'field1': 'e'}]); 

Po przypisaniu tablicy do konfiguracji "przechowywania", ExtJS automatycznie generuje nazwy pól.

Powiązane problemy