我正在尝试以编程方式对 MatTableDataSource 进行排序,以便在查看特定移动布局中的数据时,可以通过使用按钮而不是通过表列标题对数据进行排序。但是,我在这样做时遇到了麻烦。
我已经按照这篇文章关于如何操作的建议进行操作,但没有反映数据排序。使用与表格相同的数据的移动布局设计:
<mat-card matSort *ngFor="let item of dataSource.filteredData">
我用来尝试对数据进行排序的函数是:
sortDataSource(id: string, start: string){
this.dataSource.sort.sort(<MatSortable>({id: id, start: start}));
}
通过点击垫子菜单中的按钮调用它,例如
<mat-menu #sortMenu="matMenu" yPosition="below" [overlapTrigger]="false">
<button mat-menu-item (click)="sortDataSource('createdDate', 'asc')"><span>Creation Date</span><mat-icon>arrow_upward</mat-icon></button>
对此的任何帮助将不胜感激!
编辑:添加我将数据分配给来自 Observable 数组的表的 dataSource 的位置:
this.data$.subscribe(data => {
this.dataSource.data = data;
this.dataSource.paginator = this.paginator;
this.dataSource.sort = this.sort;
}
编辑 2:删除错误图像,通过将“matSort”添加到mat-card
用于*ngFor
创建移动布局版本的mat-table
.