通过过滤器工具栏应用过滤器后,JQGrid分页非常慢

时间:2012-07-24 20:50:08

标签: javascript jquery html performance jqgrid

我正在使用带有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”。

我的猜测是,它每次打页时都会尝试过滤(或者它一次只过滤一页?不确定)。但这可以被禁用吗?

感谢。

2 个答案:

答案 0 :(得分:3)

您可能希望使用DataTables(http://www.datatables.net)作为替代品。排序是,我相信整个数据集(这会使处理这个脚本非常慢 - 然后绑定事件)。我最近研究了表格排序和网格布局的选项 - 由于性能问题,我使用了DataTables而不是jqGrid。

此外,看看获取最新版本是否有助于加快速度...... http://www.trirand.com/blog/(6月新发布)。

答案 1 :(得分:2)

如果您对其他网格库持开放态度,建议您查看SlickGrid

我已经使用了一段时间了。似乎是最好的JavaScript网格库。 一旦你了解它,它易于定制和也有很多插件。