查询多组 - jqgrid复杂搜索

时间:2013-01-25 10:16:22

标签: jqgrid

我正在使用带有multiplegroup选项的jqgrid来进行搜索。我的过滤器如下所示:

{"groupOp":"OR",
"rules":[{"field":"Total_case","op":"eq","data":"29"}],
"groups":[{"groupOp":"AND",
"rules":[{"field":"Total_case","op":"eq","data":"2"},{"field":"percent","op":"eq","data":"100"}],
"groups":[]}]}

我的行总大小写= 2,百分比= 100且总大小写= 29.由于外部条件是“OR”条件,我期待两行。但它没有显示任何记录。有什么问题?

1 个答案:

答案 0 :(得分:0)

问题似乎与answer your previous question重复。我刚刚在原始问题上写了答案,我确认这是当前版本的jqGrid中的一个错误。作为一种解决方法,我建议修改包含"groupOp":"OR"和非空部分rulesgroups的请求,以便将rules部分作为新的附加组插入{ {1}}。

在您发布的示例中,可以先使用jQuery.parseJSON转换您发布到对象表单的JSON字符串groups

postData.filters

然后可以测试{ groupOp: "OR", rules: [ {field: "Total_case", op: "eq", data: "29"} ], groups: [ { groupOp: "AND", rules: [ {field: "Total_case", op: "eq", data: "2"}, {field: "percent", op: "eq", data: "100"} ], groups: [] } ] } 是“或”,groupOprules都是非空数组。在这种情况下,可以移动groups内的rules部分。换句话说,可以将其转换为以下对象

groups

最后,可以使用{ groupOp: "OR", rules: [], groups: [ { groupOp: "AND", rules: [ {field: "Total_case", op: "eq", data: "2"}, {field: "percent", op: "eq", data: "100"} ], groups: [] } { groupOp: "AND", rules: [ {field: "Total_case", op: "eq", data: "29"} ], groups: [] } ] } 将对象转换回JSON字符串,并将结果分配回JSON.stringify

更新:我发布了the pull request,其中描述了在处理过滤/搜索请求期间将在内部执行jqGrid的更改。

The demo使用修复程序,现在看来一切正常。