型号:
Ext.define('Voting', {
extend: 'Ext.data.Model',
hasMany: [
{model: 'VotingQuestion', name: 'questions'}
]
}
和
grid.bindStore(voting.questions())
然后使用RowEditing添加/编辑/删除/求助网格
在此之后,如果我点击取消按钮,是否有任何简单的方法可以将'问题'恢复到初始状态(除了从服务器重新加载商店)?
感谢
答案 0 :(得分:1)
这取决于您如何实现行编辑功能。如果您已经让它实时保留更改,我恐怕您将不得不打电话给服务器以使其进入初始状态。
如果您在客户端保存少数事务的状态,那么您可以使用UnDo / ReDo工具,用户可以在不进行服务器调用的情况下撤消或重做上次事务。这基本上是一个设计决策,您是想要为每个编辑进行网络聊天,还是希望拥有包含多个事务的粗粒度数据持久性。
您必须小心并注意应用程序是否设计用于高级别的并发访问,而不是必须构建用于处理数据完整性的其他机制。
您可以查看其目标状态为extjs-timeline
Timeline项目是ExtJS接口库的扩展。 它的目标很简单:
Provide a framework for undo/redo of user events. Be generic enough for widespread basic use. Be extensible enough for easy customization. Be free to everyone, for any purpose, personal or commercial.
编辑:Check this example,这也有延迟数据持久化的机制。
答案 1 :(得分:1)
也许不是你想要的,但你试过吗
grid.getStore().each(function(record){
record.reject();
})
答案 2 :(得分:1)