0

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

1 回答 1

0

尝试将属性更改objectstoreobjectStore. 据我所知,它区分大小写,因此objectstoreobjectStore. 我认为甚至grid.render()没有必要。

所以你的代码会变成:

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

我还做了一个例子JSFiddle

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

grid.startup();
于 2013-07-25T08:37:28.360 回答