我正在使用angular6的ngb分页,在给定场景下,API中的totalCount为45,并且在每次页面更改之前,直到第5页它都会发送pageSize = 10,并且效果很好。但是,对于第5页,它发送pageSize = 5,HTML中的寻呼机显示21-30,这是不正确的,应显示为41-45。如果有人可以帮忙的话。
在我的HTML组件中:
<div class="col-md-6">
<p><small>{{startIndex}}-{{endIndex}} of over {{totalCount}} results for data</small></p>
</div>
<ngb-pagination [collectionSize]="totalCount" [page]="p"
(pageChange)="showAllData($event)" [maxSize]="3" [rotate]="true" [ellipses]="false">
</ngb-pagination>
在ts文件中是我的衣服,如下所示。
showAllData(page: number) {
this.myservice.getAlldata(this.showAllUrl, page, this.selectedInputfield).subscribe(response => {
this.content = response;
this.pageSize = +response.pager.pageSize
this.totalCount = response.pager.totalCount;
if (page == 1 ) {
this.startIndex =1;
this.endIndex = page * this.pageSize;
}
else {
this.startIndex = (( page - 1 ) * this.pageSize) + 1
this.endIndex = (this.startIndex -1) + (this.pageSize);
}
},
(error) => {
}
)
}
答案 0 :(得分:0)
问题是您正在使用pageSize来计算当前显示页面的起始索引:
this.startIndex = (( page - 1 ) * this.pageSize) + 1
,如果您没有固定的最大页面大小(例如,每页最多显示10个项目),则无法计算起始索引。如果您有固定的最大页面大小,则可以这样计算开始索引和结束索引:
this.startIndex = (( page - 1 ) * maxItemsPerPage) + 1
this.endIndex = (this.startIndex -1) + (this.pageSize);