В продолжение темы, задача немного другая.
Есть данные статичные которые должны быть добавлены в начало Combo, есть данные из базы которые добавляются через JsonReader.
Как мне объединить оба формата данных в одном Combo.
Уже пытался и add делать для store, и load и loadData... В разных случаях получаются разные ошибки в ядре ext. Что я делаю не так? (Ext 3.4 - выше пока использовать не могу.)
var store = new Ext.data.Store({
url: 'AJAX_URL',
fields: ['title', 'value'] ,
reader: new Ext.data.JsonReader({
root: 'root',
}, [
{ name: 'title', mapping: 'title' },
{ name: 'value', mapping: 'value' }
])
});
// где _p = new Ext.form.FormPanel
_p.add({
xtype: 'combo',
fieldLabel: title,
id: id,
name: name,
store: store,
/* второй вариант
store: new Ext.data.ArrayStore({
fields: ['value'],
data: [{title: 'title', value: 'value'}, {title: 'title2', value: 'value2'}]
})*/,
valueField: 'value',
typeAhead: false,
displayField:'title',
//mode: 'local',
forceSelection: false,
triggerAction: 'all',
editable: false
});
store.loadData([{title: 'title', value: 'value'}, {title: 'title2', value: 'value2'}]);
_p.doLayout();
По раздельности работает, вместе нет.
Пишет ошибку где-то в недрах ext (Cannot read property 'length' of undefined )
UPD
Добавил data в правильном формате
fields: ['title', 'value'] ,
data: {"root":[{"title":"title","value":"value"},{"title":"title","value":"value"},{"title":"title","value":"value"}]},
reader: new Ext.data.JsonReader({
Стало чуть чуть лучше, теперь надо понять как сделать так чтобы Json ответ не затирал все содержимое Combo, а добавлял в конец.
UPD2
Нашел решение
Надо для store прописать
listeners: {
load: function() {
var rec = new Ext.data.Record.create([{name: 'title', type: 'string'},{name: 'value', type: 'string'}]);
this.insert(0, new rec({title: 'title2', value: 'value2'}));
}
}