javascript - 内存存储更改后如何刷新 dojo gridx?

标签 javascript dojo dojo.gridx

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

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

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

但是,分页器显示了正确的页数,只是网格容器没有呈现行。

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

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

最佳答案

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

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

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

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

关于javascript - 内存存储更改后如何刷新 dojo gridx?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17451007/

相关文章:

javascript - 是否有 jQuery Timeago 插件的 Dojo 对应物?

javascript - 在 dojo 数据网格中实现超链接

javascript - 如何实现 float 可拖动面板

javascript - 如何让 Dijit Editor 保留?

javascript - 如何在可编辑的 GridX 中将局部变量作为属性提供给单元格编辑器?

javascript - GridX 中的 HTML 转义

dojo - 从 dojo.gridx 获取行内容它总是显示最初加载的旧数据

javascript - ReactJS onChange,如果嵌套 hash/json

javascript - AngularJS - 具有 UI 路由器 View 和 $ocLazyLoad 解析语法的动态 $StateProvider

javascript - 调整窗口大小时禁用调整特定 div 的大小