我一直在挖掘这个相当多的。我使用的是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 2012-03-13 16:16:11
恩 - 请你澄清一下吗?你期望哪些标题被发送?你指的是延迟加载还是虚拟滚动? – 2012-03-13 16:17:52
虚拟滚动。基本上,我希望网格一次加载25-50行。 – Ali 2012-03-13 16:26:32