gpt4 book ai didi

angular6 - 如何在特定列的角度 Material 数据表中进行过滤

转载 作者:行者123 更新时间:2023-12-05 08:15:21 27 4
gpt4 key购买 nike

我正在尝试角 Material 数据表。

正如我们所知,默认情况下对每一行进行过滤。

如果我想过滤特定的列,那我该怎么办?

我是否必须编写获取所有记录的方法,然后遍历它并比较特定列?

组件.ts


ngOnInit() {
this.service.getUser().subscribe( results => {
if(!results){

return;
}
console.log(results);
this.dataSource = new MatTableDataSource(results);
this.dataSource.sort = this.sort;
})


onSearchClear(){
this.searchKey="";
this.applyFilter();
}

applyFilter(){
this.dataSource.filter = this.searchKey.trim().toLowerCase();
}

组件.html


<mat-form-field class="search-form-field">
<input matInput [(ngModel)]="searchKey" placeholder="search by userName" (keyup)="applyFilter()">
</mat-form-field>

最佳答案

您应该使用 MatTableDataSource 的 filterPredicate 属性

初始化this.dataSource后,定义一个自定义的filterPredicate函数如下;

this.dataSource = new MatTableDataSource(results);
this.dataSource.sort = this.sort;
this.dataSource.filterPredicate = function(data: any, filterValue: string) {
return data.specificColumn /** replace this with the column name you want to filter */
.trim()
.toLocaleLowerCase().indexOf(filterValue.trim().toLocaleLowerCase()) >= 0;
};

关于angular6 - 如何在特定列的角度 Material 数据表中进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56620674/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com