我有一个带有数据源的mat表,我为它创建了分页,每次您移动到下一页时都会加载接下来的几个条目。我的查询返回结果总数,因此我希望始终在分页器上显示总量(x中有1),而不是将dataSource的总长度显示为最大长度。
我知道,当您设置dataSource.paginator = this.paginator时,它会自动执行连接,但我想到的任何代码都无法覆盖它。我尝试过链接length="numberOfHits“,但没有。
另外,我不希望单独处理dataSource (这意味着我不会将它连接到分页器),因为这样,表懒惰就会通过向它添加更多行来加载,而不是通过将页面切换到下一个页面来加载。
.html:
<table
mat-table
[dataSource]="dataSource"
*ngIf="!loadingData; else loading"
class="row"
>
...
</table>
<mat-paginator
#paginator
[pageSize]="pageSize"
[pageSizeOptions]="paginatorPageSizeOptions"
[pageIndex]="currentPage"
(page)="onPageChange($event)"
></mat-paginator>
.ts:
createTable() {
this.dataSource = new MatTableDataSource();
this.dataSource.paginator = this.paginator;
}
当我输入this.paginator = this.numberOfHits时,我期望覆盖分页器的length属性。
编辑:我已经尝试过了,但没有成功:
<mat-paginator
#paginator
[length]="numberOfHits"
[pageSize]="pageSize"
[pageSizeOptions]="paginatorPageSizeOptions"
[pageIndex]="currentPage"
(page)="onPageChange($event)"
></mat-paginator>
它确实在第一次启动时工作,但是一旦我切换到下一个页面,它就返回到显示dataSource长度。
发布于 2019-08-27 02:21:07
试试这样的东西。
<mat-paginator
#paginator
[length]="totalRecords"
[pageSize]="pageSize"
[pageSizeOptions]="paginatorPageSizeOptions"
[pageIndex]="currentPage"
(page)="onPageChange($event)"
></mat-paginator>
因此,通过分配总记录,您可以使用mat分页器来显示自定义长度。
在你的情况下,你可以像
<mat-paginator
#paginator
[length]="numberOfHits"
[pageSize]="pageSize"
[pageSizeOptions]="paginatorPageSizeOptions"
[pageIndex]="currentPage"
(page)="onPageChange($event)"
></mat-paginator>
如果您不传递'numberOfHits‘值,它将自动将dataSource长度分配给分页器。
如果上面的内容不起作用,我们可以通过添加
this.paginator.length = this.numberOfHits;
希望能帮上忙!
https://stackoverflow.com/questions/57672369
复制相似问题