jqgrid - 使用多个“and”和“or”条件过滤 jqgrid
问题描述
我想使用以下搜索条件过滤 jQGrid
Name="Mark" and Age=25 and (city="NY" or city="FL") and (company="xyz" or company="zyx")
下面是我的搜索字符串
{
"groupOp": "AND",
"rules": [{
"field": "Name",
"op": "eq",
"data": "Mark"
}, {
"field": "Age",
"op": "eq",
"data": "25"
}],
"groups": [{
"groupOp": "OR",
"rules": [{
"field": "city",
"op": "eq",
"data": "NY"
},
{
"field": "city",
"op": "eq",
"data": "FL"
}
],
"groups": [{
"groupOp": "OR",
"rules": [{
"field": "company",
"op": "eq",
"data": "xyz"
},
{
"field": "company",
"op": "eq",
"data": "zyx"
}
]
}]
}]
}
和
postData: {
filters: above string
},
但这个搜索不起作用。请帮忙
解决方案
看来你在最后"groups"
一部分有错误。正确的过滤器应该看起来像
{
"groupOp": "AND",
"rules": [
{ "field": "Name", "op": "eq", "data": "Mark" },
{ "field": "Age", "op": "eq", "data": "25" }
],
"groups": [
{
"groupOp": "OR",
"rules": [
{ "field": "city", "op": "eq", "data": "NY" },
{ "field": "city", "op": "eq", "data": "FL" }
],
"groups": []
},
{
"groupOp": "OR",
"rules": [
{ "field": "company", "op": "eq", "data": "xyz" },
{ "field": "company", "op": "eq", "data": "zyx" }
],
"groups": []
}
]
}
此外,我强烈建议您包含您使用(可以使用)的 jqGrid版本和 fork(免费 jqGrid、商业Guriddo jqGrid JS或版本 <=4.7 中的旧 jqGrid)。
如果您真的使用“免费 jqGrid”(不是版本 <=4.7 中的旧 jqGrid),那么您可以将"IN"
运算符与本地数据集一起使用。该值应该是逗号分隔的值列表和
{
"groupOp": "AND",
"rules": [
{ "field": "Name", "op": "eq", "data": "Mark" },
{ "field": "Age", "op": "eq", "data": "25" },
{ "field": "city", "op": "eq", "data": "NY,FL" },
{ "field": "company", "op": "eq", "data": "xyz,zyx" }
]
}
此外,免费的 jqGrid 允许将默认的逗号分隔符(可能包含在某些公司名称中)替换为 jqGrid 选项定义的任何替代符号inFilterSeparator
。
推荐阅读
- microsoft-graph-teams - 通过具有多个渠道的 Graph API 创建团队
- octave - 如何在 Octave 中模拟概率
- javascript - 如何在Jquery的mouseleave上隐藏单列的单元格?
- excel - 请帮我弄清楚这个跟踪器
- java - 使用简化的冒泡式排序对数字进行排序不会返回第二最小值
- dart - 如何在 dart 2.12.0 中解析?
- python - 在 functools.lru_cache 装饰器中定义舍入容差
- android - APK 文件的未来
- kubernetes - 用于网络策略的 Kubernetes 列表式标签值
- go - 一次清除 pilosa 字段中设置的所有位