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

Her*_*ill 6 filtering jqgrid

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

我在想象类似的东西

jQuery("#grid_id").filter('CategoryID', selectedCategoryID);
Run Code Online (Sandbox Code Playgroud)

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

Igo*_*gor 6

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

$('#myGrid').setGridParam({ data: filtereddataarray }).trigger("reloadGrid");
Run Code Online (Sandbox Code Playgroud)

其中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");
    }
Run Code Online (Sandbox Code Playgroud)


Rig*_*ong 1

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

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

你有运气吗?