我正在使用 dojo 1.9 gridx 。用内存存储初始化网格。但是,当数据发生更改时,我更新了存储,但没有看到对网格进行任何更改。它没有refresh()方法(例如 dgrid )。但是,我发现以下顺序:

            grid.model.clearCache();
            grid.model.setStore(store)
            grid.body.refresh()

它使网格显示Loading...消息,但是什么也没有发生。

但是,分页器显示正确的页数,仅网格容器未呈现行。

带有来自gridx源的/gridx/tests/test_grid_filter.html过滤器的示例具有相同的问题:Loading...消息,但没有数据。

所以第一个问题是,这是一个错误吗?如果不是错误,那么我该如何告诉网格数据已更改并应重新加载?

最佳答案

我以前的答案是有效的,从投票的 Angular 来看,它对其他人很有用,但是我发现了一种更简单的方法,不需要重新创建商店:

grid.model.clearCache();
grid.model.store.setData(items)
grid.body.refresh()

关键操作是清除缓存,设置新项目以及强制刷新浏览器。

令人困惑的是,GridX具有“存储”属性,但不是用于呈现数据的对象。实际对象是在模型上设置的商店,因此这是您需要修改的对象。

08-17 10:21