gpt4 book ai didi

javascript - Angular Material 分页器 nextPage 属性

转载 作者:行者123 更新时间:2023-12-01 00:14:42 24 4
gpt4 key购买 nike

我总共有 250 个项目,我正在显示其中的 5 个项目,即 pageSize 设置为 5。我已将 paginator.length 属性设置为 items.length

现在,这里有两个问题:

尽管我手动设置了 paginator.length 但当我 console.log 分页器的属性时,它显示 5 (这是我每页显示的项目数)。因此分页器的 next 按钮被禁用。

如何启用下一个按钮,以便在单击它时我可以知道并向服务器请求下一个数据。请记住:在这方面我仅使用后端分页。分页信息通过服务器的响应 header 传递。这是我的代码

pageIndex=1;
pageNumber;
pagination;
ngOnInit(): void {
this.paginator.pageSize = 5;
this.paginator.pageIndex = this.pageIndex;

this.salesReportService.getDailyReport().subscribe((response) => {
console.log('Response of sales report : ', response);
this.reports = response.body;
this.pagination=response.headers.get('X-Pagination');
console.log('PaginationInformation: ',this.pagination)

this.paginator.length=this.pagination.TotalCount;

console.log('paginator properties: ', this.paginator);
console.log('paginator hasNextpage(): ', this.paginator.hasNextPage());
this.dataSource = new MatTableDataSource(this.reports);
this.dataSource.paginator = this.paginator;
this.dataSource.sort = this.sort;
}, (error) => {
console.log('Error occured while fetching sales report: ', error);
});
}
// here I'd call the function to get the next data when the next button of paginator is clicked.

// something like this
this.salesReportService.getReports(pageNumber:2)

最佳答案

这是因为您首先设置了分页器长度,然后尝试执行以下行

   this.dataSource = new MatTableDataSource(this.reports);
this.dataSource.paginator = this.paginator;

这使得分页器设置数据源中可用数据的长度。

因此,在上面两行之后,请在代码中保留以下行。

  this.paginator.length=this.pagination.TotalCount; // this.paginator.length= 'No Of Records';

希望对你有帮助!

关于javascript - Angular Material 分页器 nextPage 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59848626/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com