如何在特定列的角材料数据表中进行过滤

时间:2019-06-16 16:25:50

标签: angular6 angular-material-6

我正在尝试角度材料数据表。

我们知道默认情况下每行都会发生过滤。

如果我要过滤特定于列的内容,那该怎么办?

我是否必须编写一种方法来获取所有记录,然后对其进行迭代并比较特定的列?

component.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();
  }

component.html


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

3 个答案:

答案 0 :(得分:4)

检查this教程并运行demo

enter image description here

答案 1 :(得分:2)

您应该使用MatTableDataSource的filterPredicate属性

初始化this.dataSource后,按如下所示定义自定义filterPredicate函数;

get

答案 2 :(得分:0)

您可以使用角形的桌子材料

=SLOPE(OFFSET($B$2,(ROW()-ROW($D$2))*18,,18,),$A$2:$A$19)

来源:https://code-android-example.blogspot.com/2019/11/how-to-filter-table-material-angular.html