Filter Kendo网格数据源嵌套和组合过滤器

Filter Kendo网格数据源嵌套和组合过滤器,filter,kendo-grid,Filter,Kendo Grid,我将在剑道网格数据源上应用多个过滤器 如果我有一个如下所示的过滤器,那么一切都正常,gridConfig是我剑道网格的配置: var mainFilters = []; mainFilters.push({ field: "x", operator: "eq", value: 1 }); mainFil

我将在剑道网格数据源上应用多个过滤器

如果我有一个如下所示的过滤器,那么一切都正常,gridConfig是我剑道网格的配置:

            var mainFilters = [];

            mainFilters.push({
                field: "x",
                operator: "eq",
                value: 1
            });

            mainFilters.push({
                field: "y",
                operator: "eq",
                value: 2
            });

            gridConfig.instance.dataSource.filter({
                 logic: "and",
                 filters: mainFilters
            });
我的问题就在这里。我还有另一个属性,比如说z,它是一个值数组。我想用逻辑过滤z属性值上的剑道网格数据源。例如,下面是我的z属性过滤器:

            zFilters.push(
                    { field: "z", operator: "eq", value: 3},
                    { field: "z", operator: "eq", value: 4});

            gridConfig.instance.dataSource.filter({
                 logic: "or",
                 filters: zFilters
            });
现在,我想结合这两个过滤器,并将它们同时应用到我的剑道网格数据源上。这意味着我的最终结果基于以下逻辑:

(x = 1) AND (y = 2) AND (z = 3 OR z = 4)

如何使用剑道过滤器做到这一点?

如果混合了“或”“和”“和”过滤器,则必须采用该结构才能应用于小部件

 {
   logic: "and",
   filters: [
      { field: "x", operator: "eq", value: 1},
      { field: "y", operator: "eq", value: 2},
      { logic: "or", filters: [{ field: "z", operator: "eq",value: 3 }, { field: "z", operator: "eq",value: 4 }]}
   ]   
 }
最后

grid.dataSource.filter(abovefilterobject)

希望它有帮助

所有子过滤器都必须在一个阵列中!这将有助于:

grid.dataSource.filter(
    {
        logic: "and",
        filters: [
            {
                filters:[{ field: "x", operator: "eq", value: 1 }]
            },
            {
                filters:[{ field: "y", operator: "eq", value: 2 }]
            },
            {
                logic: "or",
                filters:[
                    { field: "z", operator: "eq", value: 3},
                    { field: "z", operator: "eq", value: 4}
                ]
            }
        ]
    }
);

我已经测试过这种结构,但是它不起作用。事实上,我有一个剑道网格的数据源,我将在本地对其进行过滤。