重新加载的dojo网格未在div中更新

时间:2013-07-24 18:32:59

标签: ajax dojo dojox.grid.datagrid

我有一个网格,它有一个商店,从网址获取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();
        });
    });
    }

1 个答案:

答案 0 :(得分:0)

尝试将属性objectstore更改为objectStore。据我所知,它区分大小写,因此objectstoreobjectStore不同。我认为即使grid.render()也没有必要。

所以你的代码会变成:

dataStore = new ObjectStore({ objectStore: new Memory({ data: data }) });

我也做了一个例子JSFiddle

如果这不起作用,请尝试使用startup()功能。更改商店后需要完全重建一些小部件,使用下面的代码可能会对您的情况有所帮助。

grid.startup();