Я сделал что-то похожее на это, но не смог добавить / удалить элементы.
В вашей сетке вы захотите установить в редакторе для рассматриваемого столбца комбинированный список.Я не думаю, что вам вообще нужно будет беспокоиться о смене рендерера, поле со списком должно позаботиться о вас.
xtype: 'grid',
store: Ext.create('MySite.store.UserStore'),
columns: [
{ header: 'ID', dataIndex: 'id' },
{ header: 'Name', dataIndex: 'name' },
{
header: 'Foods', dataIndex: 'foods', minWidth: 200,
editor: {
xtype: 'combobox',
store: Ext.create('MySite.store.FoodStore'),
valueField: "food",
displayField: "food",
editable: true,
maxHeight: 150,
width: 310,
multiSelect: true
}
}
],
selType: 'cellmodel',
plugins: [
Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1
})
]
Магазин, который заполняет сетку (я назвал мой UserStore здесь)нужно будет использовать тип 'auto' для поля списка.
Ext.define('MySite.store.UserStore', {
extend: 'Ext.data.Store',
storeId: 'UserStore',
autoLoad: true,
fields: ['id', 'name', { name: 'foods', type: 'auto' }],
proxy: {
type: 'ajax',
url: // your data provider
reader: {
type: 'json',
root: 'items',
successProperty: 'success',
messageProperty: 'message'
}
}