如何在angular material table中对单个table使用2分页?
How to use 2 pagination for single table in angular material table?
我正在使用 angular material 在 angular6 中创建一个应用程序。如何在单个 table 中使用 2 个分页。
我想在页眉和页脚处显示分页。
页眉分页仅显示 "Items per page" 和下拉菜单。
页脚分页将显示箭头和所有。
当我添加 2 个分页时,第二个不工作。
请参考截图
谢谢。
我认为目前没有官方解决方案,您必须自己同步两个分页器。
根据需要配置第一个分页器并将所有输入参数添加到第二个分页器:
<mat-paginator #paginator [pageSizeOptions]="[5, 10, 20]" showFirstLastButtons></mat-paginator>
<table mat-table [dataSource]="dataSource"> <!-- ... --> </table>
<mat-paginator (page)="syncPrimaryPaginator($event)"
[pageSize]="paginator.pageSize" [pageIndex]="paginator.pageIndex"
[length]="paginator.length" [pageSizeOptions]="paginator.pageSizeOptions"></mat-paginator>
在您的组件中添加一个方法来同步第一个分页器,如果使用第二个:
dataSource = new MatTableDataSource<PeriodicElement>(ELEMENT_DATA);
@ViewChild(MatPaginator) paginator: MatPaginator;
ngOnInit() {
this.dataSource.paginator = this.paginator;
}
syncPrimaryPaginator(event: PageEvent) {
this.paginator.pageIndex = event.pageIndex;
this.paginator.pageSize = event.pageSize;
this.paginator.page.emit(event);
}
我分叉了 this official example and updated it to reproduce your problem. Here 是我的解决方案。
我正在使用 angular material 在 angular6 中创建一个应用程序。如何在单个 table 中使用 2 个分页。
页眉分页仅显示 "Items per page" 和下拉菜单。 页脚分页将显示箭头和所有。
当我添加 2 个分页时,第二个不工作。
请参考截图
谢谢。
我认为目前没有官方解决方案,您必须自己同步两个分页器。
根据需要配置第一个分页器并将所有输入参数添加到第二个分页器:
<mat-paginator #paginator [pageSizeOptions]="[5, 10, 20]" showFirstLastButtons></mat-paginator>
<table mat-table [dataSource]="dataSource"> <!-- ... --> </table>
<mat-paginator (page)="syncPrimaryPaginator($event)"
[pageSize]="paginator.pageSize" [pageIndex]="paginator.pageIndex"
[length]="paginator.length" [pageSizeOptions]="paginator.pageSizeOptions"></mat-paginator>
在您的组件中添加一个方法来同步第一个分页器,如果使用第二个:
dataSource = new MatTableDataSource<PeriodicElement>(ELEMENT_DATA);
@ViewChild(MatPaginator) paginator: MatPaginator;
ngOnInit() {
this.dataSource.paginator = this.paginator;
}
syncPrimaryPaginator(event: PageEvent) {
this.paginator.pageIndex = event.pageIndex;
this.paginator.pageSize = event.pageSize;
this.paginator.page.emit(event);
}
我分叉了 this official example and updated it to reproduce your problem. Here 是我的解决方案。