首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索函数定制

问搜索函数定制
EN

Stack Overflow用户
提问于 2020-12-26 02:52:13
回答 2查看 693关注 0票数 2

它显示了一个包含其列的表。我需要的是构建一个搜索查找函数,而不是默认的过滤器函数,以便在Mini filter窗口中的值列表上,而不是整个表上:

如果键入全名Michael,表格将按Michael筛选;如果我键入电话号码,则Michael的名字将按Michael筛选。换句话说。

我不知道如何更改筛选器的值来筛选基于令牌的值,我也不想将列值更改为基于列的令牌,但我只需要这样做:如果用户在搜索字段中的输入位于令牌内,则返回令牌的键并将其显示给用户。

EN

回答 2

Stack Overflow用户

发布于 2020-12-28 19:31:19

得到了一个有效的here示例。请注意,我对Angular不是很熟悉,所以代码可能看起来很奇怪。

我定义了一个名为CustomSetFilter的自定义过滤器,其中的文本输入用作filterData中定义的每个复选框的tokens的搜索字段。如果输入为空,则会显示所有复选框。否则,只有令牌等于输入值(忽略大小写)的复选框才会出现。这可以在onChange()函数中看到。

票数 1
EN

Stack Overflow用户

发布于 2020-12-28 03:43:30

我不知道是否需要AgSetFilter,但我们可以用TextFilter来实现

1)首先,我们应该创建一个基于令牌的列

2)然后,我们需要在单元格中格式化好名称的值,因为我们有一个数组

3)并编写自定义过滤器选项

代码语言:javascript
复制
this.columnDefs = [
  {
    field: 'tokens',
    filter: 'agTextColumnFilter',
    valueFormatter: p => p.value[0],
    filterParams: {
      filterOptions: [{
      displayKey: 'ByToken',
      displayName: 'ByToken',
      test: function (filterValue, cellValue) {
        const array = cellValue.split(',')
        return array.includes(filterValue);
      },
      hideFilterInput: false
      }]
    },
  }
];

结果:

​

​

​

​

工作示例:

https://plnkr.co/edit/7mtR5Kq3Hyqup0Ta

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65450872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档