在客户端上以编程方式过滤jqGrid?

时间:2010-01-07 02:14:16

标签: jqgrid filtering

有没有办法以编程方式(在Javascript中,而不是在服务器端)过滤当前在jqGrid中显示的数据?所有搜索示例似乎都依赖于使用jqGrid自己的搜索UI,这对我不起作用。例如,我希望能够根据页面上其他位置的用户操作进行过滤。

我在想像

jQuery("#grid_id").filter('CategoryID', selectedCategoryID);

其中CategoryID是网格中的列,selectedCategoryID包含,例如,用户在select元素中选择的值。

2 个答案:

答案 0 :(得分:6)

如果您想先预先过滤数据:

$('#myGrid').setGridParam({ data: filtereddataarray }).trigger("reloadGrid");

其中filtereddataarray仅包含您要为此视图显示的记录

如果您想以编程方式构建过滤器(我主要使用此方法):

var filters = { "groupOp": "AND", "rules": [{ "field": "id", "op": "eq", "data": "9" }, { "field": "amount", "op": "ge", "data": "10" }, { "field": "name", "op": "cn", "data": "do i"}] };

//To filter:
jqGridFilter(filters , $('#myGrid'));

//To reset: 
jqGridFilter(null, $('#myGrid'));

    function jqGridFilter(filtersparam, grid) {
        grid.setGridParam({
            postData: {
                filters: filtersparam
            },
            search: true
        });
        grid.trigger("reloadGrid");
    }

答案 1 :(得分:1)

您可以传递JSON作为数据,并使用setGridParam方法重新加载数据!

我从来没有尝试过这个,也不确定如何让jqgrid使用你的客户端数据而不是点击URL!

你有运气吗?