我有一个网格,它有一个商店,从网址获取json数据。当我更改商店中的值时,我将商店重新分配给网格。我在开发人员工具中观察到网格正被分配给新商店。即使我检查它,dijit.byId(),我能够看到更新的商店。但是,显示屏仍然保持不变。下面是代码,我曾经用来重新加载我的网格。
function refreshGridWithNewStore() {
require([
"dojox/grid/DataGrid",
"dojo/store/Memory",
"dojo/data/ObjectStore",
"dojo/request",
"dojo/domReady!"
],
function (DataGrid, Memory, ObjectStore, request) {
request.get("DataPage.aspx", {
handleAs: "json"
}).then(function (data) {
grid.store.close();
dataStore = new ObjectStore({ objectstore: new Memory({ data: data }) });
grid.setStore(dataStore);
grid.render();
});
});
}
答案 0 :(得分:0)
尝试将属性objectstore
更改为objectStore
。据我所知,它区分大小写,因此objectstore
与objectStore
不同。我认为即使grid.render()
也没有必要。
所以你的代码会变成:
dataStore = new ObjectStore({ objectStore: new Memory({ data: data }) });
我也做了一个例子JSFiddle。
如果这不起作用,请尝试使用startup()
功能。更改商店后需要完全重建一些小部件,使用下面的代码可能会对您的情况有所帮助。
grid.startup();