【问题标题】:Dojo Datagrid always shows outdated dataDojo Datagrid 总是显示过时的数据
【发布时间】:2012-02-22 01:27:45
【问题描述】:

我正在使用通过 dojo.data.ObjectStore 和 dojo.store.Cache 连接到 dojo.store.JsonRest 的 Dojo Datagrid。还有一个 dojo.store.Memory 连接到 Cache 存储。

数据网格可通过下拉菜单进行编辑。第一次更改值时,一切似乎都很好,但如果您再次编辑同一行,编辑会传递到 JsonRest 和服务器,但网格本身会恢复显示旧值。

这是一个已知的错误吗?任何解决方法的想法?

【问题讨论】:

  • 你能发布一些你的代码吗?
  • 真的需要查看代码...您是否真的将数据写回数据库并进行了适当的保存(正如@TedPrz 指出的那样)?

标签: javascript dojox.grid.datagrid dojo


【解决方案1】:

如果没有看到您的代码,很难说为什么这些更改没有被持久化。请记住,DataGrid 依赖于统一数据接口将更改写回数据存储。编辑单元格后,更改将通过 Dojo 数据适配器的 setValue() 方法写回;未保存的更改存储在适配器中,直到您调用 save() 方法: dataStore.save();调用 save() 后,所有更改都会通过 put() 调用传递到对象存储。要记住的是,网格只是显示/反映存储中的数据。因此,除非在底层存储中永久更改了更改,否则网格中的编辑单元格将不会持续存在。

【讨论】:

    【解决方案2】:

    您可以在将数据保存到服务器后进行网格更新行。回调可以是:

    function onApplyCellEditHandler(inGrid, inValue, inRowIndex, inFieldIndex) { inGrid.yourStore.save(); inGrid.updateRow(inRowIndex); }

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2012-01-13
      • 1970-01-01
      • 1970-01-01
      • 2013-11-21
      • 2011-10-18
      • 2012-01-20
      • 1970-01-01
      • 2022-08-16
      • 2012-03-09
      相关资源
      最近更新 更多