jqGrid过滤规则

时间:2015-10-08 09:05:20

标签: jquery jqgrid

大家,

最近,我使用了jqGrid的Filter函数。我有'where'子句如下:

TakeVendor ='SOME' AND Act_ToDoFlag ='SOME' AND VHNO LIKE'%SOME%' AND ((A_FLAG ='true'AND B_FLAG ='false') OR (A_FLAG ='false'和B_FLAG ='true'))

我不知道如何编写jqgrid的过滤器,

我现在写的代码:

            var myfilter = { groupOp: "AND", rules: [] };                

            myfilter.rules.push({ field: "TakeVendor", op: "eq", data: searchVender });                                
            myfilter.rules.push({ field: "Act_ToDoFlag", op: "eq", data: searchFiler });                
            myfilter.rules.push({ field: "VHNO", op: "cn", data: searchVHNO });

请帮助我,谢谢!

1 个答案:

答案 0 :(得分:1)

一切都相对简单,并且描述了here文档。您可以转换过滤器

TakeVendor = 'SOME'
AND Act_ToDoFlag = 'SOME'
AND VHNO LIKE '%SOME%'
AND (
    (A_FLAG = 'true' AND B_FLAG = 'false')
    OR (A_FLAG = 'false' AND B_FLAG = 'true')
)

到以下jqGrid过滤器

var myfilter = {
        groupOp: "AND",
        rules: [
            {field: "TakeVendor", op: "eq", data: "SOME"},
            {field: "VHNO",       op: "cn", data: "SOME"}
        ],
        groups: [
             {
                 groupOp: "OR",
                 rules: [],
                 groups: [
                     {
                         groupOp: "AND",
                         rules: [
                             {field: "A_FLAG", op: "eq", data: "true"},
                             {field: "B_FLAG", op: "eq", data: "false"}
                         ],
                         groups: []
                     },
                     {
                         groupOp: "AND",
                         rules: [
                             {field: "A_FLAG", op: "eq", data: "false"},
                             {field: "B_FLAG", op: "eq", data: "true"}
                         ],
                         groups: []
                     }
                 ]
             }
         ]
    };

应该考虑到groupOp: "AND"rules同时应用groups。之后,myfilter对象的上述结构应该清楚。