有没有办法以编程方式过滤当前在jqGrid中显示的数据(在Javascript中,而不是在服务器端)?所有搜索示例似乎都依赖于使用jqGrid自己的搜索UI,这对我不起作用.例如,我希望能够根据页面上其他位置的用户操作进行过滤.
我在想象类似的东西
jQuery("#grid_id").filter('CategoryID', selectedCategoryID);
Run Code Online (Sandbox Code Playgroud)
其中CategoryID是网格中的列,selectedCategoryID包含,例如,用户在select元素中选择的值.
如果您想先预先过滤数据:
$('#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)
您可以传递 JSON 作为数据并使用该setGridParam方法重新加载数据!
我从来没有尝试过这个,也不知道如何让 jqgrid 使用你的客户端数据而不是点击 URL!
你有运气吗?