如何撤消extjs网格中添加的行

时间:2017-03-30 06:46:20

标签: extjs grid roweditor

我想如何在实际保存之前撤消网格中添加的特定内容。

请查看此Picture

我已经添加了两行但是因为例如:对于某些验证失败,第二行无效,所以我想撤消第二行但保留第一行以将该数据保存到db。

我在尝试的是将所有脏行推送到数组,然后在数据库中进行更新。但我不知道如何撤消或删除正在添加的无效行。没有重新加载网格 Example for reference Live example

1 个答案:

答案 0 :(得分:1)

您不必将行推入数组以进行同步。您真正想要使用的是底层商店和/或模型上可用的方法。

要拒绝第二个模型并更新数据库中的所有其他模型,两行就足够了。确切的代码可能因Ext版本而异;在ExtJS 6.2.1中,它将是:

grid.getStore().getAt(1).reject()(或.drop()
grid.getStore().sync()

虽然通用方法是拒绝所有无效模型:​​

var store = grid.getStore(),
    invalidRecords = store.query(function(record) {
        return !record.getValidation().isValid();
    });
invalidRecords.each(function(record) {
     record.reject();
})
store.sync();