将Dojo Grid与Memory存储一起使用

时间:2015-02-12 20:46:08

标签: javascript dojo dojox.grid.datagrid dojox.grid

我在使Dojo Grid小部件工作时遇到了一些问题。

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

<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标记,但是我的商店没有任何商品。

我确定我忽略了一些微不足道的事情(希望如此),但我们非常感谢任何帮助! :)

1 个答案:

答案 0 :(得分:0)

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

您有几个选择:

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