如何在客户端编程中以程序方式对jqGrid进行筛选?

6
有没有一种方法可以通过编程方式(使用Javascript而不是服务器端)对当前在jqGrid中显示的数据进行过滤?所有的搜索示例似乎都依赖于使用jqGrid自己的搜索UI,这对我来说不起作用。例如,我想根据页面上其他地方的用户操作进行过滤。
我想象中的东西类似于:
jQuery("#grid_id").filter('CategoryID', selectedCategoryID);

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

2个回答

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
你可以将JSON作为数据传递,并使用setGridParam方法重新加载数据!
我从未尝试过这个,也不确定如何让jqgrid使用客户端数据而不是访问URL!
你有什么好运气吗?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接