我在Ext JS 3.0中有一个EditorGridPanel,通过HttpProxy和JsonReader填充,我有一个可编辑的列“工作” – 我可以编辑该值并将其标记为脏.
现在,在编辑单元格之后,如何使用一些基本参数,行的ID字段,列名称更改以及新值将XmlHttpRequest发送到服务器?
请求完成后,服务器端更新很容易.但是没有多少谷歌和挖掘简单的内存中的EditGridPanel示例有助于让EditGridPanel进行调用.
我不想要的:
> REST – 只需通过正常的GET或POST进行更新
>插入新记录或删除行 – 仅限更新.
>批量更新 – 一次只编辑一个单元格.
>一堆代码 – 这应该是微不足道的,就像Scriptaculous中的Ajax.InPlaceEditor一样
最佳答案 我终于想通了……我的商店里只需要一位作家:
var ds = new Ext.data.JsonStore({
autoSave: true,
url: "ajax-handler.aspx",
method: "POST",
timeout: 120000,
root: "rows",
totalProperty: "results",
idProperty: "primarykeyvalue",
fields: previewColumnConfig,
baseParams: {
now: (new Date()).getTime()
},
writer: new Ext.data.JsonWriter({
encode: true,
listful: false
})
});
笔记:
>“现在”的基础参数是绕过“某些浏览器”(猜测)缓存AJAX结果
>“encode”在POST中返回POST变量而不仅仅是一个简单的JSON结果.
>“listful”被禁用,因为用户一次只编辑一行/列,不需要设计服务器端解析器来引入数组,它只能期望一行.
>是的,我有一个非常长的超时值.
>预先定义previewColumnConfig,存储我的列定义.