2

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

请看看这个图片

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

我正在尝试的是我将所有脏行推送到一个数组,然后在数据库中更新。但我不知道如何撤消或删除正在添加的无效行。无需重新加载网格 示例供参考 实时示例

4

1 回答 1

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();
于 2017-03-30T08:17:54.487 回答