如何只从Ext js Grid商店获取已删除的记录?

时间:2013-01-19 07:25:29

标签: extjs extjs3 gridpanel

我有一个网格存储,我可以使用

获取修改后的数据

var modifiedData = store.getModifiedData();

现在我想要删除记录(我正在使用ExtJs 3)。

我尝试使用var deletedData = store.getRemovedRecords();,但我猜这个属性在ExtJs 4中可用。

我只想获取从网格中删除的记录。 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:6)

默认情况下,这是不可能的。

ExtJS 3.x只能跟踪修改过的记录(开箱即用)。删除(删除)的记录将被完全删除。但是你可以做一件事;商店将为每个记录触发remove事件,并将记录本身作为第二个参数。您可以使用它来创建自己的已删除记录数组。我猜这个实现非常简单。您可以按实例执行此操作,也可以通过扩展创建全新的商店类型。但我想这里并不需要后者。

这是一个例子。请注意,您可能需要处理其他事件以清除removedList。

var myStore = new Ext.data.Store({
    removedList: [],
    listeners: {
        clear: function(store) {
              store.removedList =  [];
        },
        load: function(store) {
              store.removedList =  [];
        },
        remove: function(store, record, index) {
              store.removedList.push(record);
        }
    }
});

答案 1 :(得分:-1)