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