JQGridPageing在通过过滤器工具栏应用过滤器后非常慢

JQGrid paging very slow after applying filter via filter toolbar

本文关键字:过滤器 非常 应用 工具栏 JQGridPageing      更新时间:2024-02-13

我将jqGrid与LOAD ONCE一起使用,然后在客户端进行分页。当我添加过滤器工具栏时,在应用任何类型的过滤器后,分页都会变得非常慢。

$(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等)之前,单击页面按钮会有延迟

请注意,网格完成后,数据类型属性将设置为"local"。

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

谢谢。

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

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

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

我已经用了一段时间了。似乎是同类中最好的JavaScript网格库。一旦你掌握了它的窍门,它就很容易定制;也有相当多的插件已经。

相关文章: