我在 SO 中阅读了多个问题,但我无法解决。
我调用服务来检索数据。一切正常 -> 过滤器、分页器和呈现的数据。但我不知道为什么排序不起作用
这是我的代码:
displayedColumns: string[] = ['fecha','horaexamen','rut','nombre','tipoexamen','correo','telefono','epivigila','codigo','valor','verdetalles'];
dataSource: MatTableDataSource<Examenmodel>;
@ViewChild(MatPaginator) paginator: MatPaginator;
@ViewChild(Matsort) sort: Matsort;
constructor(private es: ExamenesService) {
}
ngOnInit(): void {
this.es.getExamenes().subscribe( data => {
this.examenes = data;
this.dataSource = new MatTableDataSource(this.examenes);
this.dataSource.paginator = this.paginator;
});
}
ngAfterViewInit() {
this.dataSource.sort = this.sort;
}
几乎所有人都建议把 this.dataSource.sort = this.sort;在 ngAfterViewInit 中。我第一次这样做是因为我在 Material 文档中看到了它。请帮忙,我的想法快用完了。
谢谢!
编辑 html 代码:
<table mat-table [dataSource]="dataSource" matsort>
<ng-container matColumnDef="fecha">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Fecha </th>
<td mat-cell *matCellDef="let row"> {{row.fecha }} </td>
</ng-container>
<ng-container matColumnDef="horaexamen">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Hora </th>
<td mat-cell *matCellDef="let row"> {{row.horaexamen}} </td>
</ng-container>
<ng-container matColumnDef="rut">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Rut </th>
<td mat-cell *matCellDef="let row"> {{row.rut}} </td>
</ng-container>
...
</table>
编辑 2:我尝试使用来自材料文档示例的静态数据,但没有奏效