0

DataGridで選択したすべてのアイテム(グリッド内の約171レコード)を取得できないdojo(1.8.1)DataGridがあります。問題は、selectedItemに返されるデータの一部がnullであるということです。

興味深いことに、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変数に対してnullになります。奇妙な問題、DataGridのバグのように見えますか?

どうも!!

4

1 に答える 1

1

これは原因である可能性があります( 「ページングと仮想スクロール」のDataGridチュートリアルをpaging参照)。「一度にレンダリングされるのは、データのごく一部だけです」。したがって、厄介な回避策は、インスタンス化するときにのプロパティを高い値(のように)に設定することです。これは、グリッドに表示される予想最大行数よりも大きくする必要があります。rowsPerPageDataGrid1000

于 2012-12-12T17:03:11.280 に答える