如何将 angular material table 列拆分为多个页面(分页)
How to split angular material table columns in to multiple pages (pagination)
我有一个 material table 具有动态列数。
假设要显示 20 列数据。
对于每个页面,它应该显示 5 列。当用户点击分页时,它应该显示其他列。
如何使用 Angular material table 和分页来实现?
我认为此处 angular material demo 中的演示将满足您的要求。
它不叫分页而是叫它动态列。
您可以实现一个按钮名称 next column page
并通过在单击时添加一些列和删除一些列来执行操作。
分页器本身会为您提供从 0 到页数的索引。您唯一需要做的就是更改 displayColumns 并考虑该索引。
如果你有,例如像
这样的分页器
<mat-paginator #paginator [length]="7" hidePageSize="true"
(page)="changeDisplayColumns($event)"
[pageSize]="2">
</mat-paginator>
和一个包含所有列的变量
displayedColumnsAll: string[] = ['position', 'name', 'weight',
'symbol',"another","another2","another3"];
看到在 [length]
of paginator 中你输入了列的数量(例如“7”)
你可以做到
changeDisplayColumns(page:PageEvent)
{
this.displayedColumns=this.displayedColumnsAll.slice(
page.pageIndex*page.pageSize,
page.pageIndex*page.pageSize+page.pageSize)
}
看到一个fool stackblitz
注意:首先你需要给 index=0 的 displayedColums 赋值,见
displayedColumns=this.displayedColumnsAll.slice(0,2)
在 stackblitz
我有一个 material table 具有动态列数。
假设要显示 20 列数据。
对于每个页面,它应该显示 5 列。当用户点击分页时,它应该显示其他列。
如何使用 Angular material table 和分页来实现?
我认为此处 angular material demo 中的演示将满足您的要求。
它不叫分页而是叫它动态列。
您可以实现一个按钮名称 next column page
并通过在单击时添加一些列和删除一些列来执行操作。
分页器本身会为您提供从 0 到页数的索引。您唯一需要做的就是更改 displayColumns 并考虑该索引。
如果你有,例如像
这样的分页器<mat-paginator #paginator [length]="7" hidePageSize="true"
(page)="changeDisplayColumns($event)"
[pageSize]="2">
</mat-paginator>
和一个包含所有列的变量
displayedColumnsAll: string[] = ['position', 'name', 'weight',
'symbol',"another","another2","another3"];
看到在 [length]
of paginator 中你输入了列的数量(例如“7”)
你可以做到
changeDisplayColumns(page:PageEvent)
{
this.displayedColumns=this.displayedColumnsAll.slice(
page.pageIndex*page.pageSize,
page.pageIndex*page.pageSize+page.pageSize)
}
看到一个fool stackblitz
注意:首先你需要给 index=0 的 displayedColums 赋值,见
displayedColumns=this.displayedColumnsAll.slice(0,2)
在 stackblitz