2

テストスコアのテーブルで機能する「より大きい」フィルターを取得する簡単なデモがあります。ソースはここをクリックして見つけることができます。var myfilterまで下にスクロールすると、ルールの 1 つがコメントアウトされていることがわかります。

var myfilter = {
    groupOp: "AND",
    rules: [
        {field: 'score', op: 'gt', data: 70},
        //{field: 'grade', op: 'in', data: [10, 11, 12]}
    ]
};

このルールは、グレード 10、11、12 の行のみを選択するように指示します。ただし、このルールのコメントを外すと、機能しません。実際、テーブルを壊すことさえあります。これはバグですか、それとも間違っていますか?

明確にするために、 op: 'in'機能を使用する方法を見つけたいだけです。リストop: 'in' の検索に関する jqGrid wiki は、 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 に答える