具有dstore Tackable和Memory的OnDemandGrid在设置数据时不显示完整数据

时间:2016-03-18 17:25:46

标签: javascript dojo dgrid dstore

我的OnDemandGrid与dstore Trackable和Memory商店相关联。最初,设置具有空数组的存储器。获取实际数据并将其设置到网格中时,网格不会显示完整数据。它总是显示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); 

1 个答案:

答案 0 :(得分:0)

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

在大多数情况下,这应该在您自己的代码中修复,因为startup只应在网格元素在文档流中之后调用。但是,Dijit的StackContainer恰好在它们真正显示之前调用了所有子节点上的startup,但通常会因为它实际上在resize之后调用message显示。

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

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