在分页中计算(显示总 n 的 n 到 n )
Calculation about ( Showing n to n of total n ) in pagination
在 primeng 数据中计算(显示 n 到 n,共 n 个)table 分页
我创建了一个自定义逻辑来显示剩余记录逻辑中的当前记录
如果 table 行数为 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
}
Everything is working fine, but if my last page having only 7 records but the e.rows
result is always showing 10
. I know e.rows
works from this input which am giving in data table as [rows]="10"
. But in this scenario how can we solve this??
我已经通过在(页面)事件
中传递 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;
}
But am struggling to handle if the row counts are 20|25|30|etc
. Kindly take my answer as a key for your answers.
这个怎么样:
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
在 primeng 数据中计算(显示 n 到 n,共 n 个)table 分页
我创建了一个自定义逻辑来显示剩余记录逻辑中的当前记录
如果 table 行数为 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
}
Everything is working fine, but if my last page having only 7 records but the
e.rows
result is always showing10
. I knowe.rows
works from this input which am giving in data table as[rows]="10"
. But in this scenario how can we solve this??
我已经通过在(页面)事件
中传递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;
}
But am struggling to handle if the row counts are
20|25|30|etc
. Kindly take my answer as a key for your answers.
这个怎么样:
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