私はこれをかなり掘り起こしてきました。私dojox.grid.datagridを使用していると私は200から300の行をもたらすajax呼び出しがあります。Dojo DataGrid仮想スクロール・ハウツー?
グリッドはChromeでうまくレンダリングしてスクロールしますが、スクロールはIE 7と8では非常に遅いです。問題を解決するために仮想スクロールを使用したいと思いますが、サンプルコードは見つかりません。
ここに私のコードはどのように見えますか?
function setupAvailableScenes(location) {
var avaiableScenesGridPane = dijit.byId("AvaiableScenesGridPane");
var availableScenesGrid = dijit.byId("AvailableScenesGrid");
if (_isFirstLoad) {
availableScenesGrid = new dojox.grid.DataGrid({
id: 'AvailableScenesGrid',
store: availableScenesStore,
query: { Id: "*" },
sortInfo: "1",
rowsPerPage: 20,
autoHeight:20,
style: "width:315px",
structure: [
{ name: "Available Scenes", field: "Name", width: "85%" },
{ name: " ",
field: "_item",
rowsPerPage: "25",
type: dojox.grid.cells._Widget,
editable: false,
width: "15%",
formatter: function (scene) {
return new dijit.form.Button(
{
label: "+",
onClick: function() {
AddSceneToSelectedScenes(scene);
}
})
}
}
]
});
avaiableScenesGridPane.set('content', availableScenesGrid);
}
var availableScenesStore = new dojo.data.ItemFileWriteStore({
url: _applicationPath + "/Location/" + location.Id + "/Scene.json",
preventUrlCache: true
});
availableScenesGrid.setStore(availableScenesStore);
}
ありがとうございました。私はそれが仮想スクロールを行うことになっていることを知っているが、私はパラメータがヘッダーで送信されて表示されません。 私はstartrowと返す行の数は、私のコントローラに送信し、次にデータ層で行の数を返す必要があるパラメータになると仮定しています。 dijitで単純なボタンが表示されるかどうかを確認します。あなたが仮想スクロールについて考えていることを私に教えてください。 – Ali
ええええええええええええええええええええ?どのヘッダーでパルメータが送られると思いますか?遅延読み込みや仮想スクロールを指していますか? –
バーチャルスクロール。基本的には、グリッドに一度に25〜50行をロードしたい。 – Ali