有没有办法以编程方式(在Javascript中,而不是在服务器端)过滤当前在jqGrid中显示的数据?所有搜索示例似乎都依赖于使用jqGrid自己的搜索UI,这对我不起作用。例如,我希望能够根据页面上其他位置的用户操作进行过滤。
我在想像
jQuery("#grid_id").filter('CategoryID', selectedCategoryID);
其中CategoryID是网格中的列,selectedCategoryID包含,例如,用户在select元素中选择的值。
答案 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!
你有运气吗?