我正在使用带有LOAD ONCE的jqGrid,然后在客户端进行分页。当我添加过滤器工具栏时,在应用任何类型的过滤器后,分页变得非常慢。
$(gridElement).jqGrid({
postData: post,
loadComplete: function (data) {
onLoadComplete(data);
},
gridComplete: function () {
onGridComplete();
},
datatype: function (pdata) {
dataSource(pdata);
},
colNames: columnNames,
colModel: columnModel,
rowNum: 10,
rowList: [10, 20, 30],
viewrecords: true,
pagination: true,
pager: pagerElement,
loadonce: true,
sortorder: "desc",
sortname: 'id',
cellEdit: false,
search: true,
gridview: true,
//rownumbers: true
});
$("#jqGrid").jqGrid('filterToolbar',{
stringResult : true,
searchOnEnter : false });
知道为什么会这样吗?在任何常见事件触发之前单击分页按钮会有延迟(如onPaging,onGridComplete等)。
请注意,一旦网格完成,datatype属性将设置为“local”。
我的猜测是,它每次打页时都会尝试过滤(或者它一次只过滤一页?不确定)。但这可以被禁用吗?
感谢。
答案 0 :(得分:3)
您可能希望使用DataTables(http://www.datatables.net)作为替代品。排序是,我相信整个数据集(这会使处理这个脚本非常慢 - 然后绑定事件)。我最近研究了表格排序和网格布局的选项 - 由于性能问题,我使用了DataTables而不是jqGrid。
此外,看看获取最新版本是否有助于加快速度...... http://www.trirand.com/blog/(6月新发布)。
答案 1 :(得分:2)
如果您对其他网格库持开放态度,建议您查看SlickGrid。
我已经使用了一段时间了。似乎是最好的JavaScript网格库。 一旦你了解它,它易于定制和也有很多插件。