jqGrid - 'in'op不适用于过滤器

时间:2012-12-16 20:41:54

标签: javascript jquery jqgrid

我有一个简单的演示,它可以在一个测试分数表上运行一个“大于号”的过滤器。可以找到来源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等级的行。但是,当我取消注释此规则时,它不起作用。事实上,它甚至打破了桌面。这是一个错误,还是我错了?

要说清楚,我只是想找到一种方法来使用 op:'in'功能。搜索的jqGrid wiki在 sopt 的值下列出 op:'in',因此应该有办法实现...

1 个答案:

答案 0 :(得分:2)

你是对的。 本地搜索的当前实现不支持"in"操作。它仅使用"eq"

因此,我建议您使用"eq"操作阻止代替"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}
            ]
        }
    ]
};

请参阅filters here的完整格式说明。