我正在使用通过 dojo.data.ObjectStore 和 dojo.store.Cache 连接到 dojo.store.JsonRest 的 Dojo Datagrid。还有一个 dojo.store.Memory 连接到 Cache 存储。
数据网格可通过下拉菜单进行编辑。第一次更改值时,一切似乎都很好,但如果您再次编辑同一行,编辑会传递到 JsonRest 和服务器,但网格本身会恢复显示旧值。
这是一个已知的错误?任何解决方法的想法?
我正在使用通过 dojo.data.ObjectStore 和 dojo.store.Cache 连接到 dojo.store.JsonRest 的 Dojo Datagrid。还有一个 dojo.store.Memory 连接到 Cache 存储。
数据网格可通过下拉菜单进行编辑。第一次更改值时,一切似乎都很好,但如果您再次编辑同一行,编辑会传递到 JsonRest 和服务器,但网格本身会恢复显示旧值。
这是一个已知的错误?任何解决方法的想法?
您可以在将数据保存到服务器后制作网格更新行。回调可以是:
function onApplyCellEditHandler(inGrid, inValue, inRowIndex, inFieldIndex) {
inGrid.yourStore.save();
inGrid.updateRow(inRowIndex);
}
希望能帮助到你
如果没有看到您的代码,很难说出为什么没有保留更改。请记住,DataGrid 依赖于统一数据接口将更改写回数据存储。编辑单元格后,更改将通过 Dojo 数据适配器的 setValue() 方法写回;未保存的更改将存储在适配器中,直到您调用 save() 方法: dataStore.save(); 调用 save() 后,所有更改都会通过 put() 调用传递到对象存储。要记住的是,网格只是显示/反映存储中的数据。因此,除非更改已在底层存储中永久保存,否则网格中的编辑单元格将不会持续存在。