我有一个已激活Cell编辑插件的网格。
一旦我更新了几个列,我按下保存按钮,所有更新的记录(行)将被发送回来,代码如下:
var grid = Ext.ComponentQuery.query('#CheckGrid')[0];
var store = Ext.data.StoreManager.lookup('CheckStore');
var modifieds = grid.getStore().getUpdatedRecords();
var id_check = [];
var ds_check_list = [];
var id_check_type = [];
var id_version = [];
console.log(modifieds);
if (modifieds.length > 0)
{
for(var i = 0; i < modifieds.length; i++) {
id_check.push(modifieds[i].get('ID_CHECK'));
ds_check_list.push(modifieds[i].get('DS_CHECK_LIST'));
id_check_type.push(modifieds[i].get('ID_CHECK_TYPE'));
id_version.push(modifieds[i].get('ID_VERSION'));
}
}
Ext.Ajax.request({
url: 'URL',
method: 'POST',
params: {
'Param.1': 'Check',
'Param.2': id_check.toString(),
'Param.3': ds_check.toString(),
'Param.4': id_type.toString(),
'Param.5': id_version.toString()
}
这很好用。但我想知道并发送已更新的列名及其先前的值。
当我看到console.log(modifieds);
的控制台时,我可以发现:
那么如何在我的代码中访问这个previousValue对象呢?我想知道以前的值以及列名。
请建议!
答案 0 :(得分:1)
ds_check_list.push(modifieds[i].getPrevious('DS_CHECK_LIST'));
id_check_type.push(modifieds[i].getPrevious('ID_CHECK_TYPE'));
Ext.data.Model.getPrevious(fieldname):对象
此方法返回在最近更改之前给定其名称的字段的值。
Store.getUpdatedRecords()函数返回一个Ext.data.Model实例,该实例又有一个getPrevious方法。
查看ExtJS的API文档,然后浏览方法并返回使用的值,通常有很多帮助。
这里记录了getUpdatedRecords()方法:http://docs.sencha.com/extjs/5.0/5.0.1-apidocs/#!/api/Ext.data.Model-method-getPrevious