私はExt.grid.Panel
with RowEditor プラグインを持っており、コンボボックス エディターを含む列が含まれています。
{
dataIndex: 'parentId',
text: 'Parent category',
editor: {
store: store,
valueField: 'categoryId',
displayField: 'name',
xtype: 'combobox',
allowBlank: true
}
店内はこんな感じ。
var store = Ext.create('Ext.data.Store', {
model: 'Category',
autoLoad: true,
proxy: {
type: 'rest',
url: 'api/categories',
reader: {
type: 'json',
root: 'categories'
}
}
});
そしてモデル:
Ext.define('Neopod.model.Category', {
extend: 'Ext.data.Model',
fields: ['categoryId', 'name', 'parentId'],
})
グリッド行を編集してコンボボックスを初めてクリックすると、ExtJS がサーバーからのデータ ロードをトリガーし、roweditor が自動的にキャンセルされます。そのため、ユーザーはコンボ ドロップダウンが表示されることを期待していましたが、コンボが開かれず、代わりに編集モードがキャンセルされました。
では、なぜ ExtJS はこのように動作するのでしょうか?