Javascript 使用带有内存存储的Dojo网格

Javascript 使用带有内存存储的Dojo网格,javascript,dojo,dojox.grid.datagrid,dojox.grid,Javascript,Dojo,Dojox.grid.datagrid,Dojox.grid,我在让DojoGrid小部件工作时遇到了一些问题 网格本身是以声明方式添加的: <table data-dojo-type="dojox.grid.DataGrid" data-dojo-attach-point="relationshipsGrid"></table> 然而,我最终得到的只是一个空的、0高度的网格。如果我明确地给它设置了一个高度,我只会得到一个空的灰色区域。呈现了很多Dojo标记,但没有我的商店中的任何项目 我确信我忽略了一些琐碎的事情,希望如此,但非

我在让DojoGrid小部件工作时遇到了一些问题

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

<table data-dojo-type="dojox.grid.DataGrid" data-dojo-attach-point="relationshipsGrid"></table>
然而,我最终得到的只是一个空的、0高度的网格。如果我明确地给它设置了一个高度,我只会得到一个空的灰色区域。呈现了很多Dojo标记,但没有我的商店中的任何项目

我确信我忽略了一些琐碎的事情,希望如此,但非常感谢您的帮助!:

dojox/grid不直接支持dojo/storeapi,也不再维护

您有几个选择:

使用包装dojo/store,将其转换为dojox/grid能够理解的旧dojo/data API 不建议直接使用dojo/数据存储,因为它已被弃用多年 使用更现代的网格包,如0.3.x支持dojo/store;0.4.x支持下一代dojo商店
谢谢你的帮助!希望dijit或dojox中会有OOTB组件:在这种情况下,一个完整的数据网格实际上有点过头了,您知道是否有任何标准的Dojo小部件支持数据绑定并基本上呈现一个表吗?也就是说,没有数据网格的所有功能?我不知道DTK中有任何基于存储的表组件,但基本上你只需要做一个store.query.forEach。。。并使用dojo/dom构造在回调中创建/放置表行/单元格。RE-OOTB:dojox的厨房水槽方法在过去几年中效果不佳,因此我们通常会采用单独的软件包,但将来它们可能会捆绑在一起作为一个单独的下载。dgrid通常是我现在从事的项目的go-to组件。感谢您的帮助,非常感谢!我想我会给dgrid一个尝试,否则我只会使用击倒或角度绑定。干杯
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();