问题描述
在 4 个按钮中,我想将其中一个用作下一页按钮。如何做到这一点?
这是分页器 HTML
<mat-paginator
[pageSize]="2"
[pageSizeOptions]="[2,4,6]" showFirstLastButtons>
</mat-paginator>
这些是打字稿代码的相关部分
recordsDataTable:any[]=[ ];
recordsData !: MatTableDataSource<any>;
@ViewChild(MatPaginator) paginator!: MatPaginator;
ngAfterViewInit()
{
this.userservice.getRecords()
.subscribe(
(x)=>
{
this.recordsDataTable=x.data;
this.recordsData= new MatTableDataSource(x.data);
this.recordsData.paginator = this.paginator;
}
)
}
解决方法
分页器组件为您处理整个分页逻辑。你不处理点击它的按钮。该组件有一个 page
事件,您可以使用它来处理页面更改。
<mat-paginator [length]="length"
[pageSize]="pageSize"
[pageSizeOptions]="pageSizeOptions"
(page)="yourPageChangeLogic($event)">
</mat-paginator>
,
在angular material 中,Paginator 自带一个事件 > (page)="getPageDetails($event)"。此事件为我们提供了有关该表的信息。
在 component.ts 文件中
getPageDetails(event:any) {
console.log(event);
}
在 component.html 文件中
<mat-paginator showFirstLastButtons
[length]="totalDataLength"
[pageSize]="pageSize"
[pageSizeOptions]="pageOptions"
(page)="getPageDetails($event)"></mat-paginator>
示例链接:https://stackblitz.com/edit/angular-pyix6j?file=src/app/table-pagination-example.html