3

DOJO で DataGrid に問題があります。このコードで 1 秒ごとにグリッドを更新します

window.store_data_log= new dojo.data.ItemFileReadStore({data:{items:temp}});
var grid = dijit.byId("grid_log");
grid.setStore(window.store_data_log);

そしてそれはうまくいきます(新しいデータを入れてください)。問題は、行がたくさんあり、下にスクロールすると、グリッドが更新され、スクロールが一番上のグリッドに表示されることです。これを解決するには?

4

2 に答える 2

2

もちろん、ストアを完全にクリアし、ゼロから毎秒リセットしています。ストアをリセットすると、基本的にグリッドがリセットされます。ストアを更新すると、グリッドがスクロール位置をリセットするだけだと思います。

単にストアをリセットしようとするのではなく、ストアを適切に使用する方法を学びたいと思うかもしれません. 私はここでこれに答えました:

データグリッドを更新する方法

Dojo を適切に使用すると、良い結果が得られますが、近道をしてストアを毎秒更新しようとすると、グリッドが使用できなくなります。

一歩下がってアプリケーション アーキテクチャを解決する必要があり、グリッドの更新が魔法のような解決策であるとは期待しないでください。

于 2011-04-11T11:11:27.710 に答える
0

(dojo) datagrid.js を実行した後、問題を解決する方法を見つけました。

//datastore you're using//
var store = new dojox.data.QueryReadStore({ 
   //in the fetch()//
   fetch: function (request){
        //add the following://
        request.isRender = false; 
   }
});

重要:グリッドを一番上までスクロールさせたくない場合にのみ設定request.isRenderしてください。false状況によっては (新しい列での並べ替えなど)、おそらく に設定するのが最善であることを覚えておいてtrueください。ロジックに役立つ if/else ステートメントを追加するだけです。

于 2013-01-04T17:34:18.580 に答える