我创建了一个自定义逻辑,希望显示剩余记录逻辑中的当前记录
如果表行数是10,总计数是否在第二页上,那么我可以显示,
Showing 20 to 30 of 37
因此,我尝试使用手动
在(onPage)="onPageChange($event)"
事件中执行此操作
onPageChange(e) {
console.log(e);
let currentpageCount = parseInt(e.first.toString().charAt(0)) + 1;
let currentPageRows = e.rows;
this.pageinationcount = 'Showing' + (parseInt(e.first.toString().charAt(0)) * parseInt(currentPageRows)) + ' to ' + (currentpageCount * parseInt(currentPageRows)) + ' of ' + this.errorLogList.length
}
一切正常,但如果我的最后一页只有7条记录,但
e.rows
结果始终显示10
。我知道e.rows
可以使用此输入,它在数据表中为[rows]="10"
。但在这种情况下我们如何解决这个问题?
答案 0 :(得分:1)
这个怎么样:
let start = e.first + 1;
let end = (e.first + e.rows) > this.errorLogList.length ? this.errorLogList.length : (e.first + e.rows);
this.pageinationcount = 'Showing ' + start + ' to ' + end + ' of ' + this.errorLogList.length;
稍微改变了Aravind的例子以供参考:http://plnkr.co/edit/oWrGziGmkwXfO4aK9xOp?p=preview
答案 1 :(得分:0)
我在(onpage)事件
中传递dt.dataToRender.length
手动完成了某些操作
<p-dataTable class="ui-widget-h1-header1" [value]="errorLogList"
[responsive]="true" [paginator]="true" [rows]="10"
(onPage)="onPageChange($event, dt.dataToRender.length)" [globalFilter]="gb"
#dt [pageLinks]="3" [rowsPerPageOptions]="[10,20,25,30]">
.
.
.
.
</p-dataTable>
以下代码仅在行数为10
时才有效,但如果行数为20|25|30
则无法按预期工作
onPageChange(e, pagecount) {
console.log(e);
let currentpageCount = parseInt(e.first.toString().charAt(0)) + 1;
let calculateRow = parseInt(e.rows) - parseInt(pagecount)
this.pageinationcount = parseInt(e.first.toString()) + 1
+ ' to ' + (parseInt(e.first.toString()) - calculateRow) + ' of ' + (this.errorLogList.length)
let temp = 'Showing' + this.pageinationcount.toString();
this.pageinationcount = temp;
}
但如果行计数为
20|25|30|etc
,我很难处理。请将我的答案作为答案的关键。