【问题标题】:Search function customization搜索功能定制
【发布时间】:2021-04-03 15:30:55
【问题描述】:

它显示了一个带有其列的表格。 我需要的是构建一个搜索查找函数而不是默认过滤器函数,以便在 Mini Filter 窗口中的值列表而不是整个表中: [![在此处输入图片描述][1]][1]

如果输入全名 Michael,那么表格将被 Michael 过滤,或者如果我输入电话号码,那么 Michael 的名字将被 Michael 过滤。换句话说。

我不想更改过滤器的值以过滤基于标记的标记,我也不想将列值更改为基于列的标记,但我只需要如果用户在搜索字段中的输入在里面然后令牌返回令牌的密钥并将其显示给用户。

【问题讨论】:

标签: angular typescript frontend ag-grid ag-grid-angular


【解决方案1】:

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

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

【讨论】:

  • 谢谢,我会检查您的解决方案,是否可以将该过滤器符号保留在 Athlete 列上方而不是隐藏它?
  • 你的意思是floating filter?这是一个不同的组件,我必须单独提供。
  • 不不,我的意思是我看一下国家列,符号看起来与运动员过滤器符号不同。我需要与运动员之上的国家相同的符号
  • 请问可以吗?
  • 比如,过滤器何时激活?它们在我看来是一样的。如果您取消选中每列上的复选框,则会出现过滤器图标,并且两列上的图标相同。
【解决方案2】:

我不知道是否需要 AgSetFilter,但我们可以使用 TextFilter 来完成

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

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

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

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

【讨论】:

  • 我不想改变过滤器的值来过滤基于标记的标记,我也不想将列值更改为基于列的标记,但我只需要如果用户的输入在搜索字段在令牌内,然后返回令牌的键并将其显示给用户
猜你喜欢
  • 2019-04-15
  • 2020-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-30
相关资源
最近更新 更多