Dojo 网格从商店更新
我有一个 dojox.grid.DataGrid 与 dojox.data.JsonRestStore 一起使用。 通过 AJAX 更改一个单元格(我们称之为单元格 A1)的值后,我像这样重新加载网格:
dijit.byId('reminders').selection.clear();
dijit.byId('reminders').store._items = Array();
dijit.byId('reminders')._refresh();
一切正常。但是,如果更改同一行上另一个单元格(单元格 A2)的值,而不重新加载整个网格,如下所示:
var grid = dijit.byId('reminders');
var item = grid.getItem(parseInt(response_data.edit_row));
grid.store.setValue(item, 'rem_text', response_data.rem_text);
当我更改单元格 A1 的值并重新加载网格时,显示的值不会改变,即使响应中的值已更改(在 Firebug 控制台中可见)。
这是发生这种情况的唯一情况。如果我更改 B2 的值,然后更改 A1 的值并重新加载,它就可以正常工作。 因此,编辑后,我得到了具有正确值的新商店,但它没有显示。我希望我能足够清楚地解释
我不知道我在这里缺少什么,特别是因为该代码在所有其他情况下都有效。 任何见解将不胜感激。
I have a dojox.grid.DataGrid working with a dojox.data.JsonRestStore.
After changing values of one cell (let's call it cell A1) trough AJAX, I reload the Grid like this :
dijit.byId('reminders').selection.clear();
dijit.byId('reminders').store._items = Array();
dijit.byId('reminders')._refresh();
and everything works ok. However, if a change the value of another cell (cell A2) on the same row, without reloading the whole grid, like this :
var grid = dijit.byId('reminders');
var item = grid.getItem(parseInt(response_data.edit_row));
grid.store.setValue(item, 'rem_text', response_data.rem_text);
when I change the value of cell A1 and reload the grid the value shown doesn't change even though the value in the response is changed (seen in Firebug console).
This is the only case when this happens. If I change the value of B2 and then A1 and reload it works ok.
So, after editing, I get the new store with the correct values, but it doesn't show. I hope I was clear enough explaining
I don't know what I'm missing here, especially because the code works in all other cases.
Any insight would be greatly appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我在使用 JsonRestStore 时遇到了一些问题,最终使用了 QueryReadStore,它以我想要的方式检索数据并使用 grid._refresh。
I had some problems with the JsonRestStore and ended up using a QueryReadStore, which retrieved my data the way I wanted and worked with grid._refresh.