我正在使用带有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”条件,我期待两行。但它没有显示任何记录。有什么问题?
答案 0 :(得分:0)
问题似乎与answer your previous question重复。我刚刚在原始问题上写了答案,我确认这是当前版本的jqGrid中的一个错误。作为一种解决方法,我建议修改包含"groupOp":"OR"
和非空部分rules
和groups
的请求,以便将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: []
}
]
}
是“或”,groupOp
和rules
都是非空数组。在这种情况下,可以移动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使用修复程序,现在看来一切正常。