如何从单元格编辑网格中获取“列名称”和“上一个值”

时间:2015-09-24 07:16:18

标签: javascript extjs extjs5 sencha-architect

我有一个已激活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);的控制台时,我可以发现:

Console

那么如何在我的代码中访问这个previousValue对象呢?我想知道以前的值以及列名。

请建议!

1 个答案:

答案 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