一、应用场景
使用ExtJS的GridPanel组件显示数据,编辑用户当前选择行的数据,分如下2种情形处理:
1. GridPanel数据不自动刷新
2. GridPanel数据定时自动刷新
二、实现方案
通常情况下,所谓编辑数据都是通过双击鼠标,弹出编辑对话框,修改数据,点击“确定”按钮,实现数据更新。
但是针对数据“定时自动刷新”和“不刷新”2种情况,实现编辑数据的方式略有不同。
1. GridPanel数据不自动刷新
在这种情况实现数据编辑,可以如下实现:
var record = form.getRecord();
record.set(form.getValues());
store.sync({
success: function(form, action) {
//TODO
},
failure: function(form, action) {
//TODO
}
});
2. GridPanel数据定时自动刷新
在这种情况在使用上述方式时无法实现对指定数据的编辑修改。
因为: 不断地定时刷新数据,即每一次刷新的结果对于store来说都是最新的,及时在编辑对话框中看到数据确实被修改了,但是点击“确定”按钮时,将不会发送任何请求。
此时,需要使用如下方式提交更新的数据:
form.submit({clientValidation: true | false
url: ""
method: "POST",
success: function(form, action) {
//TODO
},
failure: function(form, action) {
//TODO
}
});
因为在项目中遇到了这样的问题,备注之。