将 Dojo Grid 与内存存储一起使用

Using Dojo Grid with a Memory store

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

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

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

您有几个选择:

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