我有一个网格,其中填充了包含多个不同字段的项目,并且我创建了一个搜索栏,我打算用它来在网格中搜索具有与搜索词匹配的字段的项目。它只是将过滤器应用到具有给定术语的网格。我已经可以输入一些内容并按标题进行搜索,但我想对此进行扩展并能够搜索网格中的任何字段。
例如,对象 foo
可能具有字段 Title
、Description
、ID
和 >显示名称
。我可以创建一个像这样的过滤器来显式搜索网格以查找 Title
字段中的匹配项:
let newFilter = { 字段:“标题”,运算符:“包含”,值:术语 };
其中term
是代表用户输入的变量。这就是我对下一步该做什么感到有点困惑的地方:我可以以某种方式制作一个过滤器,而不是使用硬编码的“Title”作为其字段,而是搜索任何 foo
字段对于匹配项?或者我是否必须创建 4 个不同的过滤器,每个字段一个,然后在它们上放置一个“或”,告诉网格向我显示来自任何字段的术语的结果?这有道理吗?
最佳答案
您只需一个过滤器即可实现此功能。多取一个包含所有字段值的字段。
例如:
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>" }
关于javascript - 您可以在 Kendo UI 中制作具有多个字段的单个过滤器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56737656/