2012-01-30 36 views
2

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

datagrid可通过下拉菜单进行编辑。第一次更改值时,一切看起来都很顺利,但如果第二次编辑同一行,则编辑会通过JsonRest和服务器,但网格本身会恢复为显示旧值。

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

+0

你能发表一些你的代码吗? – Ted 2012-02-01 11:11:35

+0

真的需要看代码...你是否真的把数据写回数据库w /一个适当的保存(如@TedPrz指出)? – pinkeerach 2012-02-07 19:51:04

回答

0

将数据保存到服务器后,可以创建网格更新行。回调可以像:

 

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

希望它可以帮助

0

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