2

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

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

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

4

2 回答 2

0

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


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

希望能帮助到你

于 2012-02-01T11:17:58.967 回答
0

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

于 2012-02-02T01:43:46.443 回答