0

我有与它关联的 dstore Trackable 和 Memory 存储的 OnDemandGrid。最初,设置了一个空数组的内存存储。当获取实际数据并将其设置到网格中时,网格不会显示完整数据。它始终显示 100 行。

此外,如果对任何列进行了排序,则它会显示整个数据集。

网格按以下方式创建

this.grid = new (declare([Grid, Selection, ColumnHider,ColumnResizer,Keyboard, Selector]))({
                // use Infinity so that all data is available in the grid
                //className: "dgrid-autoheight",
                showHeader: true,  
                collection: self.memStore,
                minRowsPerPage : 100,
                bufferRows: 10,
                pagingDelay : 15,
                farOffRemoval : 2000,
                columns: modifiedColumnList,
                selectionMode: "extended",
                //pagingLinks: true,
                //pagingTextBox: true,
                //firstLastArrows: true,
                //rowsPerPage: 100,
                //pageSizeOptions: [100, 150, 250],
                adjustLastColumn : true,
                loadingMessage: 'Loading data...',
                noDataMessage: 'No data.',
                allowSelect: function(row){
                    return true;
                },                  
                keepScrollPosition: true
            },this.domNode);

内存存储按以下方式创建

 var TrackableMemoryStore = (declare([Memory, Trackable]));

数据按以下方式设置

self.memStore = new TrackableMemoryStore({ data: gridData, idProperty: "SRVC_ORDER_ID",defaultNewToStart : true });
            self.grid.set("collection", self.memStore); 
4

1 回答 1

0

这听起来像是 dgrid 0.4.1 和 1.0.0 中发现的问题,如果您startup在网格实际显示之前调用它,就会发生这种情况。

在大多数情况下,这应该在您自己的代码中修复,因为startup应该只在网格的元素在文档流中之后调用。然而,Dijit 的 StackContainer 也碰巧startup在其所有子项真正显示之前调用它们,但通常不会这样做,因为它会resize在它们实际显示时调用。

在 master、dev-1.0 和 dev-0.4 分支上已修复此问题,因此如果您使用其中一个分支的最新提交,则应该可以解决此问题。

(顺便说一句,在早期版本中,网格最终会立即从存储中请求所有数据,这对于大型或基于服务器的存储绝对不是一件好事。)

于 2016-03-18T17:57:44.140 回答