extjs的grid中添加的行如何撤销
How to undo the row added in the grid of extjs
我想知道如何在实际保存之前撤消添加到网格中的特定内容。
请看这个
我添加了两行,但是因为例如:对于某些验证失败,第二行无效,所以我想撤消第二行但保留第一行以将该数据保存到数据库。
我尝试的是将所有脏行推送到一个数组,然后在数据库中进行更新。但我不知道如何撤消或删除正在添加的无效行。无需重新加载网格
Example for reference
Live example
您不必为了同步而将行推入数组。您真正想要使用的是底层商店 and/or 模型上可用的方法。
要拒绝第二个模型并更新数据库中的所有其他模型,两行就足够了。确切的代码可能因 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();
我想知道如何在实际保存之前撤消添加到网格中的特定内容。
请看这个
我添加了两行,但是因为例如:对于某些验证失败,第二行无效,所以我想撤消第二行但保留第一行以将该数据保存到数据库。
我尝试的是将所有脏行推送到一个数组,然后在数据库中进行更新。但我不知道如何撤消或删除正在添加的无效行。无需重新加载网格 Example for reference Live example
您不必为了同步而将行推入数组。您真正想要使用的是底层商店 and/or 模型上可用的方法。
要拒绝第二个模型并更新数据库中的所有其他模型,两行就足够了。确切的代码可能因 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();