有没有办法在jquery jqgrid中以编程方式设置过滤器?

时间:2010-07-22 18:07:18

标签: jquery asp.net-mvc jqgrid

我的页面上有一个jqgrid,顶部有过滤行。我希望在另一个页面上有一个链接来加载这个网格页面,但是在其中一个列上设置了过滤器。可以通过链接或人们可以建议的任何其他解决方法来做到吗?

4 个答案:

答案 0 :(得分:4)

我解决这个问题的方法是传递以下代码:

var myfilter = { groupOp: "AND", rules: [] };
myfilter.rules.push({ field: "DataIssuesYN", op: "eq", data: "Y" });

然后在jqGrid设置中,我传入postData:

  postData: (myfilter) ? { filters: JSON.stringify(myfilter)} : {},

答案 1 :(得分:0)

答案 2 :(得分:0)

您可以修改jqGrid调用的url,并将过滤器选项添加到查询字符串,然后在服务器端处理它。

$(link).click(function(){

$(".mygrid").jqGrid('setGridParam',{url:"server.php?useMyFilter=1"})
});

答案 3 :(得分:0)

解决方案1。

以javascript语言显示: 使用hideCol并为其指定列名 或者一组列[colnames,otherone] jqGrid对象给定一个colname,将使用该名称隐藏该列。给定一组colnames [“name1”,“name2”],它将隐藏具有这些名称的列,'name1'和'name2',在示例中。 colname或colnames中的名称必须都是colModel中的有效名称。 请记住,这不会改变列的宽度,因此您仍然需要更改colModel 例:  colModel:[       {name:'photo',index:'photo',width:605,sortable:false},

... jQuery的( “#grid_id”)setGridParam({...})hideCol( “照片”)触发( “reloadGrid”)。; ...

解决方案2: 解决方案1:

jQuery的(文件)。就绪(函数(){   jQuery的( “#清单”)。jqGrid的({     网址: '?json.php myfilter =列名',     数据类型:'json',//或xml?     mtype:'GET',//

然后在json.php中你可以在打印之前从列中取出列密钥