Странная особенность combо. После изменения store нужно вызывать
combo.bindStore(combo.store);
И это даже работает! Но не всегда.
В моем примере перерисовка и отработка перерисовки после смены store начинает происходить только если по нему предварительно кликнули ранее мышкой. Эмуляция клика ни к чему не приводит.
=
Поиск по гуглю bindStore показал, что с похожими проблемами столкнулся не я один.
=
Неработающий пример не привожу - громоздкий код.
Работающий пример:
combo1 = new Ext.form.ComboBox({
renderTo: 'ex3',
queryMode: 'local',
displayField:'v',
valueField:'id',
store: Ext.create('Ext.data.Store', {
fields: [{name: 'id', type: 'string'},{name: 'v', type: 'string'}], data : [{id:1,v:0},{id:999999999,v:1}]
}),
listeners:{select: function(combo, value) {
combo2.clearValue();
combo2.store.loadData([{id:1,v:combo1.getValue()}]);
combo2.bindStore(combo2.store); /* !! */
},
}
});
combo2 = new Ext.form.ComboBox({
renderTo: 'ex2',
id:"e2",
queryMode: 'local',
displayField:'v',
valueField:'id',
store: Ext.create('Ext.data.Store', {
fields: [{name: 'id', type: 'string'},{name: 'v', type: 'string'}], data : []
})
});