我正在将一个应用程序升级到 ExtJS 5,我似乎无法使用 RowEditing 获得一个网格来将已编辑的记录发布回我的服务器。
Ext.define("MyRecordDef", { extend: "Ext.data.Model" });
var MyEditor = Ext.create('Ext.grid.plugin.RowEditing', { clicksToEdit: 1 });
var MyStore = new Ext.data.Store({
model: "MyRecordDef",
autoSync: true,
proxy: {
type: "ajax",
url: "ajaxurl.aspx",
batchActions: false,
extraParams: { Command: 'Save' },
reader: { type: "json", rootProperty: "rows" },
writer: { type: "json", encode: true, writeAllFields: true }
}
});
var MyGrid = new Ext.grid.GridPanel({
store: MyStore,
plugins: [ MyEditor ],
columns: [
{
id: "fieldtoedit",
dataIndex: "fieldtoedit",
editor: new Ext.form.NumberField()
}
]
});
行编辑器出现,我可以更改值并单击更新按钮,但没有任何反应。没有请求,控制台中没有记录错误。
我添加了以下内容:
MyGrid.on('edit', function (e) {
alert('You are Editing ' + e.context.record.id);
MyStore.sync(); // attempt to force a sync
});
我收到带有正确记录号的警报,但仍然没有 AJAX 请求。这就像 ExtJS完全忽略了作者。
我没有为每个 CRUD 操作设置不同的端点,所以我没有使用api
config 选项,它应该使用url
.