因此,我有两个包含一堆数据的网格,并且网格的每一行都有一个复选框供您进行选择。基本上,发生的是,当您在第一个网格上进行选择时,它会过滤第二个网格仅显示与网格1上的选择有关的内容。这是功能齐全的。但是,所有这些网格在顶部都有一个搜索栏,您可以在网格中搜索包含您键入的术语的项目。这还会根据用户输入来过滤网格。
我想通过相互嵌套过滤器使它们相互配合工作。我希望根据选择内容对网格进行过滤,然后希望用户能够在搜索栏中键入一些内容,然后再次过滤已过滤的网格以匹配项目。
我在Telerik论坛上找到了一条帖子,告诉某人尝试这样的操作,但这不起作用:
dataSource.filter({
logic: 'or',
filters: [
{ field: "Id", operator: "eq", value: 33 },
{
logic: "and",
filters: [{ field: "Everything", operator: "contains", value: "s" }]
},
{ field: "Id", operator: "eq", value: 34 },
{
logic: "and",
filters: [{ field: "Everything", operator: "contains", value: "s" }]
}
]
});
我打算为此做的是为具有(Id = 33 && Everything.contains("s")) || (Id = 34 && Everything.contains("s")
的项目过滤网格。我该如何解决才能使其正常工作?
答案 0 :(得分:2)
我相信您需要的过滤器结构是:
dataSource.filter({
logic: 'or',
filters: [
{
logic: "and",
filters: [
{ field: "Everything", operator: "contains", value: "s" },
{ field: "Id", operator: "eq", value: 33 }
]
},
{
logic: "and",
filters: [
{ field: "Everything", operator: "contains", value: "s" },
{ field: "Id", operator: "eq", value: 34 }
]
}
]
});
尝试将该结构手动应用于网格,如果可以的话,您可以实现它。