在客户端上以编程方式筛选jqGrid?

在客户端上以编程方式筛选jqGrid?,jqgrid,filtering,Jqgrid,Filtering,有没有一种方法可以通过编程方式(用Javascript,而不是服务器端)过滤jqGrid中当前显示的数据?所有的搜索示例似乎都依赖于使用jqGrid自己的搜索UI,这对我来说并不适用。例如,我希望能够根据页面上其他地方的用户操作进行过滤 我在想象这样的事情 jQuery("#grid_id").filter('CategoryID', selectedCategoryID); 其中CategoryID是网格中的一列,selectedCategoryID包含用户在select元素中选择的值。您可

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

我在想象这样的事情

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

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

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

我从未尝试过这一点,也不知道如何让jqgrid使用您的客户机数据,而不是点击URL


你运气好吗?

如果你想先预过滤数据:

$('#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");
    }