它显示了一个包含其列的表。我需要的是构建一个搜索查找函数,而不是默认的过滤器函数,以便在Mini filter窗口中的值列表上,而不是整个表上:
如果键入全名Michael,表格将按Michael筛选;如果我键入电话号码,则Michael的名字将按Michael筛选。换句话说。
我不知道如何更改筛选器的值来筛选基于令牌的值,我也不想将列值更改为基于列的令牌,但我只需要这样做:如果用户在搜索字段中的输入位于令牌内,则返回令牌的键并将其显示给用户。
发布于 2020-12-28 19:31:19
得到了一个有效的here示例。请注意,我对Angular不是很熟悉,所以代码可能看起来很奇怪。
我定义了一个名为CustomSetFilter的自定义过滤器,其中的文本输入用作filterData中定义的每个复选框的tokens的搜索字段。如果输入为空,则会显示所有复选框。否则,只有令牌等于输入值(忽略大小写)的复选框才会出现。这可以在onChange()函数中看到。
发布于 2020-12-28 03:43:30
我不知道是否需要AgSetFilter,但我们可以用TextFilter来实现
1)首先,我们应该创建一个基于令牌的列
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://stackoverflow.com/questions/65450872
复制相似问题