我想如何在实际保存之前撤消网格中添加的特定内容。
我已经添加了两行但是因为例如:对于某些验证失败,第二行无效,所以我想撤消第二行但保留第一行以将该数据保存到db。
我在尝试的是将所有脏行推送到数组,然后在数据库中进行更新。但我不知道如何撤消或删除正在添加的无效行。没有重新加载网格 Example for reference Live example
答案 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();