将Dojo网格与内存存储一起使用



我在让Dojo网格小部件工作时遇到了一些问题。

网格本身是以声明方式添加的:

<table data-dojo-type="dojox.grid.DataGrid" data-dojo-attach-point="relationshipsGrid"></table>

接下来,我将尝试将网格绑定到内存数据存储:

var relationships = [
                  { id: 1, market: "SE", entity: "An object" },
                  { id: 2, market: "SE", entity: "Another object" },
                  { id: 3, market: "SE", entity: "Yet another object" }
                ];
                var store = new Memory({ data: relationships });
                var layout = [[
                  { 'name': 'ID', 'field': 'id', 'width': '10px' },
                  { 'name': 'Market', 'field': 'market', 'width': '30px' },
                  { 'name': 'Entity', 'field': 'entity', 'width': '100px' }
                ]];
                this.relationshipsGrid.structure = layout;
                this.relationshipsGrid.store = store;
                this.relationshipsGrid.startup();

然而,我最终得到的只是一个空的0高度网格。如果我明确地设置了一个高度,我只得到一个空的灰色区域。呈现了很多Dojo标记,但我的商店中没有任何项目。

我确信我忽略了一些琐碎的事情(希望如此),但任何帮助都将不胜感激!:)

dojox/grid不直接支持dojo/store API,也不再维护。

你有几个选择:

  • dojo/data/ObjectStore包装dojo/store,将其转换为dojox/grid理解的旧dojo/data API
  • 直接使用dojo/data存储(不推荐使用,因为多年来一直不推荐使用)
  • 使用更现代的网格包,如dgrid(0.3.x支持dojo/store;0.4.x支持旨在成为下一代dojo商店的dstore)

最新更新