Создать хранилище данных из массива и bindStore в Combobox Extjs 4
У меня проблема с динамическим заполнением поля со списком ArrayStore.
В контроллере: у меня есть StatusArray: ["Active", "Inactive", "Closed"], и я создал магазин, как показано ниже
var test = Ext.create('Ext.data.ArrayStore', {
fields: [
{ name: "Status" }
],
data: StatusArray
});
а затем я заполняю комбинированный список с этим магазином
Ext.ComponentQuery.query('#statusId')[0].bindStore(test);
Это работает, но выпадающий список получает только первую букву каждого значения в StatusArray, такого как "A", "I", "C".
Моя форма Просмотр с помощью выпадающего списка:
items: [{
xtype: 'form', itemId: 'eventForm', bodyPadding: 10, anchor: '100%',
items: [{ xtype: 'combobox', anchor: '100%', displayField: 'Status', name: 'Status', valueField: 'Status', typeAhead: true, queryMode: 'local', triggerAction: 'all', fieldLabel: ' Status ', emptyText: 'Select Status', tooltip: 'Select Status', selectOnFocus: true, itemId: 'statusId' },
{ xtype: 'button', itemId: 'submitButton', text: 'Submit' }
]
}],
Кто-нибудь может мне помочь с этим? Спасибо!!!
1 ответ
Решение
Объект данных (statusarray) должен быть в форме массива экземпляров модели или объектов данных для локальной загрузки...
использование
StatusArray: [["Active"], ["Inactive"], ["Closed"]]
или же
StatusArray: [{"Active"}, {"Inactive"}, {"Closed"}]
Вы можете проверить пример кода ArrayStore здесь