您可以在Kendo UI中使用多个字段制作单个过滤器吗?

时间:2019-06-24 13:28:52

标签: javascript asp.net-core kendo-ui kendo-grid

我有一个网格,其中填充了包含多个不同字段的项目,并且我创建了一个搜索栏,打算用来在网格中搜索具有与搜索词匹配的字段的项目。只是将过滤器应用于具有给定条件的网格。我可以输入一些内容并按标题搜索,但是我想对此进行扩展,并能够搜索网格中的任何字段。

例如,对象foo可能具有字段TitleDescriptionIDDisplay Name。我可以创建一个这样的过滤器,以在Title字段中明确地搜索网格中的匹配项:

let newFilter = { field: "Title", operator: "contains", value: term };

其中term是代表用户输入的变量。这就是接下来要做什么的一个困惑:我可以以某种方式制作一个过滤器,而不是使用硬编码的“标题”作为其字段,而是搜索任何foo字段中的匹配项术语?还是我必须创建4个不同的过滤器,每个字段一个,然后在它们上面放一个“或”,告诉网格向我显示来自任何字段的结果?这有道理吗?

1 个答案:

答案 0 :(得分:1)

您仅需一个过滤器即可实现此功能。另取一个包含所有字段值的字段。

例如:

Current sample record: {"Title":"MR", "Description":"Hello", "ID":"1234", "DisplayName":"TestDisplay"}

After adding one new field with all the values: {"Title":"MR", "Description":"Hello", "ID":"1234", "DisplayName":"TestDisplay", "AllTheValues":"MR Hello 1234 TestDisplay"}

将此新字段映射到过滤器中:

let newFilter = { field: "AllTheValues", operator: "contains", value: term };

出于显示目的,您可以使用Kendo Grid column template在网格列中显示所需的任何值。

例如:{ field: "AllTheValues", template: "<strong>#: Title# </strong>" }