我在让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)