【发布时间】:2021-11-20 06:13:51
【问题描述】:
由于包含超过 30k 条目的大量数据,我决定创建一个带有 paginaton 的 mat 表。所以它现在使用我的过滤器工作正常,我唯一的问题是只有第一页显示条目并且页面导航不起作用。所以如果我点击下一页,下一页是空的
这是我的分页器:
this.persons = data;
this.personsFiltered = new MatTableDataSource(this.persons);
this.personsFiltered.paginator = this.paginator;
FilterChanged(){ //this filter works with a input field to search for a special name
this.personsFiltered = of(this.persons).pipe(
//Name
map( p => (!this.vornameFilter || this.vornameFilter.trim() === '') ? p: p.filter((i: any) => i.vorname?.toLowerCase().includes(this.vornameFilter.toLowerCase()))),
map(p => p.slice(this.paginator?.pageIndex * this.paginator?.pageSize, this.paginator?.pageSize))
)
}
我的桌子:
<table mat-table [dataSource]="personsFiltered" *ngIf="personsFiltered">
<ng-container matColumnDef="Name">
<th mat-header-cell *matHeaderCellDef > Name </th>
<td mat-cell *matCellDef="let user">
{{user.nachname}}, {{user.vorname}}
</td>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
<mat-paginator (click)="FilterChanged()" [pageSizeOptions]="[5, 10, 25, 100]"></mat-paginator>
为什么不显示其他页面上的条目?
【问题讨论】:
标签: typescript