gpt4 book ai didi

javascript - 如何让 ExtJS 5 AjaxProxy 保存?

转载 作者:行者123 更新时间:2023-11-28 01:09:33 25 4
gpt4 key购买 nike

我正在将应用程序升级到 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 配置选项,它应该使用 url

最佳答案

首先,当您使用 encode: true 时,您必须在 writer 上定义 rootProperty。然后将 fields 添加到 MyRecordDef 后发送请求。

工作示例:http://jsfiddle.net/jjVwR/3/ (保存不起作用,但您可以在控制台上看到请求已发送)

关于javascript - 如何让 ExtJS 5 AjaxProxy 保存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24642843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com