2

我有一个简单的演示,它可以在测试分数表上使用“大于”过滤器。点击这里可以找到源代码。如果您向下滚动到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 on search lists op: 'in' under the values for sopt,所以应该有办法做到这一点......

4

1 回答 1

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 请参阅此处的完整格式说明。

于 2012-12-16T22:56:59.253 回答