如何恢复extjs4商店?

时间:2011-09-11 05:27:21

标签: extjs extjs4

型号:

Ext.define('Voting', {
    extend: 'Ext.data.Model',
    hasMany: [
        {model: 'VotingQuestion', name: 'questions'}
    ]
}

grid.bindStore(voting.questions())

然后使用RowEditing添加/编辑/删除/求助网格

在此之后,如果我点击取消按钮,是否有任何简单的方法可以将'问题'恢复到初始状态(除了从服务器重新加载商店)?

感谢

3 个答案:

答案 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)