我正在使用 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具有“存储”属性,但不是用于呈现数据的对象。实际对象是在模型上设置的商店,因此这是您需要修改的对象。