我有一个简单的演示,它可以在测试分数表上使用“大于”过滤器。来源可参见by clicking here 。如果您向下滚动到 var myfilter,您将看到我已注释掉其中一条规则。
var myfilter = {
groupOp: "AND",
rules: [
{field: 'score', op: 'gt', data: 70},
//{field: 'grade', op: 'in', data: [10, 11, 12]}
]
};
此规则规定仅选择 10、11、12 年级的行。但是,当我取消注释此规则时,它不起作用。事实上,它甚至打破了 table 。这是一个错误,还是我做错了?
需要明确的是,我只是想找到一种使用 op: 'in' 功能的方法。 jqGrid wiki 上的搜索列表 op: 'in' 在 sopt 的值下,所以应该有一种方法可以做到这一点......
最佳答案
你是对的。当前的本地搜索实现不支持"in"
操作。它仅使用 "eq"
来代替。
所以我建议您使用带有 "eq"
操作的 block,而不是 "in"
。您问题中的示例可以重写为以下内容:
var myfilter = {
groupOp: "AND",
rules: [
{field: 'score', op: 'gt', data: 70},
],
groups: [
{
groupOp: "OR",
rules: [
{field: 'grade', op: 'eq', data: 10}
{field: 'grade', op: 'eq', data: 11}
{field: 'grade', op: 'eq', data: 12}
]
}
]
};
查看过滤器
完整格式的描述here .
关于javascript - jqGrid - 'in' op 不适用于过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13905280/