【问题标题】:Can you make a single filter with multiple fields in Kendo UI?你能在 Kendo UI 中制作一个包含多个字段的过滤器吗?
【发布时间】:2019-06-24 13:28:52
【问题描述】:

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

例如,对象foo 可能具有TitleDescriptionIDDisplay Name 字段。我可以创建一个像这样的过滤器来显式搜索网格以查找 Title 字段中的匹配项:

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

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

【问题讨论】:

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


    【解决方案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>" }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多