0

我将 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 等)之前,单击分页按钮会有延迟。

请注意,一旦网格完成,数据类型属性将设置为“本地”。

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

谢谢。

4

2 回答 2

3

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

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

于 2012-08-02T01:24:30.840 回答
2

如果您对替代网格库持开放态度,我建议您看看SlickGrid

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

于 2012-08-02T12:28:49.157 回答