Javascript DojoDataGrid总是显示过时的数据

Javascript DojoDataGrid总是显示过时的数据,javascript,dojox.grid.datagrid,dojo,Javascript,Dojox.grid.datagrid,Dojo,我使用的是通过Dojo.data.ObjectStore和Dojo.store.Cache连接到Dojo.store.JsonRest的Dojo Datagrid。还有一个dojo.store.Memory连接到缓存存储 datagrid可通过下拉菜单进行编辑。第一次更改某个值时,一切似乎都正常,但如果再次编辑同一行,编辑将传递到JsonRest和服务器,但网格本身将恢复显示旧值 这是已知的bug吗?有什么解决办法吗 您可以在将数据保存到服务器后生成网格更新行。回调可以类似于: functio

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

datagrid可通过下拉菜单进行编辑。第一次更改某个值时,一切似乎都正常,但如果再次编辑同一行,编辑将传递到JsonRest和服务器,但网格本身将恢复显示旧值


这是已知的bug吗?有什么解决办法吗

您可以在将数据保存到服务器后生成网格更新行。回调可以类似于:


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

希望对您有所帮助

您可以在将数据保存到服务器后创建网格更新行。回调可以类似于:


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

希望它能有所帮助

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

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

你能发布一些代码吗?真的需要查看代码…你真的在正确保存(如@TedPrz所指出)的情况下将数据写回db吗?你能发布一些代码吗?真的需要查看代码…你真的在正确保存(如@TedPrz所指出)的情况下将数据写回db吗?