【问题标题】:DataGrid returning null selectedItemDataGrid 返回 null selectedItem
【发布时间】:2012-11-30 08:50:37
【问题描述】:

我有一个 dojo (1.8.1) DataGrid,我无法在其中检索 DataGrid 中的所有选定项目(网格中大约有 171 条记录)。问题是返回到 selectedItem 的一些数据是空的。

有趣的是,如果我一直滚动到 DataGrid 的底部,然后运行下面的代码,我会得到所有的记录..这很奇怪..

var gridy = dijit.byId("grid");
var items = gridy.selection.getSelected();
if (items.length) {
  dojo.forEach(items, function(selectedItem) {
   if (selectedItem !== null) {
     dojo.forEach(gridy.store.getAttributes(selectedItem),
            function(attribute){
              var value = gridy.store.getValues(selectedItem, attribute);
              alert('attribute: ' + attribute + ', value: ' + value);
            });
    } 
  });
}

所以,选择网格中的所有项目(171)时,我只获得50项,如所选显示,其余部分为selectedItem变量。奇怪的问题,好像是DataGrid的bug??

谢谢!!

【问题讨论】:

    标签: dojo dojox.grid.datagrid


    【解决方案1】:

    这可能是由于paging(参见DataGrid-tutorial at "Paging and Virtual Scrolling")。 “一次只渲染一小部分数据”。因此,一个讨厌的解决方法可能是在实例化它时将DataGridrowsPerPage-property 设置为一个高值(如1000)。它应该高于要显示的预期最大行数网格。

    【讨论】:

    • 谢谢!!我永远不会有超过 300 行的数据,所以这个解决方案效果很好。将 rowsPerPage 设置为 1000,我得到所有选定的行而不滚动到底部。
    • 很高兴我能帮上忙 :) 顺便说一句:我想即使滚动到最底部也能确保您获得所有项目,因为他们说它一次最多保留三页。所以这取决于..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 2017-02-23
    • 2013-01-20
    • 2015-06-28
    • 1970-01-01
    • 2012-02-12
    相关资源
    最近更新 更多