Имеется пример кода
https://fiddle.sencha.com/#fiddle/ita По событию beforeedit требуется изменить список дропбокса. Пытаюсь делать так:
beforeedit: function(editor, context, eOpts) {
var store = Ext.data.StoreManager.lookup('columnStore');
store.loadRawData([{name: '666', value: '666'}], false);
Ext.getCmp('myComboBox').bindStore(store);
},
Данный пример работает правильно только после второго клика по ячейке грида. Как сделать, чтобы список combobox динамически изменялся сразу по клику на ячейку c первого раза? P/S/ Полный лист измененного мной кода:
Ext.application({
name : 'Fiddle',
launch : function() {
Ext.create('Ext.grid.Panel', {
renderTo: Ext.getBody(),
store: Ext.create('Ext.data.Store', {
fields: ['combo', 'val'],
data: [{combo: 1, val: 1},{combo: 2, val: 2}]
}),
columns: [{
text: 'ComboColumn',
dataIndex: 'combo',
flex: 1,
editor: {
xtype: 'combobox',
id: 'myComboBox',
displayField: 'name',
valueField: 'value',
store: Ext.create('Ext.data.Store', {
queryMode: 'local',
storeId: 'columnStore',
fields: ['name', 'value'],
data: [{
name: '1', value: '1'
},{
name: '1', value: '1'
},{
name: '2', value: '2'
},{
name: '2', value: '2'
}]
})
}
}],
plugins: {
ptype: 'cellediting',
clicksToEdit: 1
},
listeners: {
beforeedit: function(editor, context, eOpts) {
var store = Ext.data.StoreManager.lookup('columnStore');
store.loadRawData([{name: '666', value: '666'}], false);
Ext.getCmp('myComboBox').bindStore(store);
},
edit: function(editor, context, eOpts) {
var store = Ext.data.StoreManager.lookup('columnStore');
store.clearFilter(true);
store.load();
}
}
});
}
});