Javascript 通过ExtJS 3.0中EditorGridPanel的XmlHttpRequest自动保存?
我在Ext JS 3.0中有一个EditorGridPanel,通过HttpProxy和JsonReader填充,还有一个可编辑的列“working”--我可以编辑该值并将其标记为dirty 现在,在编辑单元格后,如何让它向服务器发送一个XmlHttpRequest,其中包含一些基本参数、行的ID字段、更改的列名称和新值 一旦发出请求,服务器端更新就很容易了。但是谷歌和挖掘内存中微不足道的EditGridPanel示例并不能帮助EditGridPanel打电话 我不想要的是:Javascript 通过ExtJS 3.0中EditorGridPanel的XmlHttpRequest自动保存?,javascript,gridview,extjs,Javascript,Gridview,Extjs,我在Ext JS 3.0中有一个EditorGridPanel,通过HttpProxy和JsonReader填充,还有一个可编辑的列“working”--我可以编辑该值并将其标记为dirty 现在,在编辑单元格后,如何让它向服务器发送一个XmlHttpRequest,其中包含一些基本参数、行的ID字段、更改的列名称和新值 一旦发出请求,服务器端更新就很容易了。但是谷歌和挖掘内存中微不足道的EditGridPanel示例并不能帮助EditGridPanel打电话 我不想要的是: REST——只需通
您可以对Ext.grid.EditorGridPanel使用afteredit事件,该事件将在编辑器模糊后触发。您还可以在触发beforeedit事件时设置定期(间隔)检查方法,并在触发afteredit事件时清除该方法 后编辑示例:
EditorGridPanel.getColumnModel().getCellEditor(column).on('afteredit', function() {
//do ajax call for the update.
});
如果您需要周期检查的示例,请告诉我,我会写一个。我终于找到了。。。我的商店需要一个作家:
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
})
});
注:
- “现在”baseparam是为了绕过“一些浏览器”(猜测一下)对AJAX结果的缓存
- “encode”在POST中返回POST变量,而不仅仅是一个简单的JSON结果
- 禁用“listful”是因为用户一次只编辑一行/列,不需要设计服务器端解析器来引入数组,它只需要一行
- 是的,我有一个很长的超时值
- previewColumnConfig预先定义,存储我的列定义