2010-01-07 92 views
5

有没有一种方法来过滤编程的(在Javascript中,而不是服务器端)在jqGrid中显示的数据?所有的搜索示例似乎都依赖于使用jqGrid自己的搜索用户界面,这对我不起作用。例如,我希望能够基于页面上其他地方的用户操作进行过滤。在客户端以编程方式过滤jqGrid?

我想象类似

jQuery("#grid_id").filter('CategoryID', selectedCategoryID); 

其中类别ID是在网格的列和selectedCategoryID包含,例如,由用户在选择元件选择的值。

回答

1

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

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

你有没有运气?

5

如果你想第一预滤器您的数据:

$('#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"); 
    } 
相关问题