Filter Kendo网格数据源嵌套和组合过滤器
我将在剑道网格数据源上应用多个过滤器 如果我有一个如下所示的过滤器,那么一切都正常,gridConfig是我剑道网格的配置:Filter Kendo网格数据源嵌套和组合过滤器,filter,kendo-grid,Filter,Kendo Grid,我将在剑道网格数据源上应用多个过滤器 如果我有一个如下所示的过滤器,那么一切都正常,gridConfig是我剑道网格的配置: var mainFilters = []; mainFilters.push({ field: "x", operator: "eq", value: 1 }); mainFil
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}
]
}
]
}
);
我已经测试过这种结构,但是它不起作用。事实上,我有一个剑道网格的数据源,我将在本地对其进行过滤。