在 NgPrime turbo 表中,我有编辑功能。在服务器中保存数据后,我正在重新加载网格。但无法保留当前页面。如何将页码设置为网格?我找到了一种使用此功能获取当前页码的方法
paginate(event) {
let pageIndex = event.first/event.rows + 1;
}
并通过将 this 属性添加到 table tag (onPage)="paginate($event)"
。如何将页码设置为网格?
在 NgPrime turbo 表中,我有编辑功能。在服务器中保存数据后,我正在重新加载网格。但无法保留当前页面。如何将页码设置为网格?我找到了一种使用此功能获取当前页码的方法
paginate(event) {
let pageIndex = event.first/event.rows + 1;
}
并通过将 this 属性添加到 table tag (onPage)="paginate($event)"
。如何将页码设置为网格?
看起来,您可以控制显示的第一行,而不是直接控制页码:
<p-table [columns]="cols" [value]="cars" [paginator]="true" [rows]="10" [first]="first">
在上述情况下,每页有 10 行,您将设置first
为 0 以到达第一页,10 用于第二页,20 用于第三页,等等。
更新:
由于上述方法在事后更改页面不起作用(也许它仅适用于表的初始设置),您可以尝试以下类似的方法,它适用于现已弃用的 DataTable:
在 HTML 中:
<p-table #myTable [columns]="cols" [value]="cars" [paginator]="true" [rows]="10">
然后,在您的组件中:
@ViewChild('myTable') myTable: TurboTable;
...
this.myTable.first = desiredFirstRow;
我会借此机会将我的旧表格代码更新为 TurboTable,我很快就会知道这是否确实有效。
@kshetline 答案确实对我有用。
HTML
<p-table #dt [columns]="columnHeaders" [value]="batchList" [lazy]="true" (onLazyLoad)="lazyLoadNextBatch($event)" [paginator]="true" [rows]="recordsPerPageCount?.value" [totalRecords]="totalRecords" [responsive]="true">
打字稿
onRecordsPerPageCountChange() {
this.totalRecords = 0;
this.pageNavLinks = 0;
this.myTable.first = 0; // <-- this did the work.
this.lazyLoadNextBatch({ 'first': 0 });
}
lazyLoadNextBatch(event: LazyLoadEvent) {
// calculate the page number from event.first
this.loading = true;
const pageNumber = Math.round(event.first / this.recordsPerPageCount.value) + 1;
this.bmService.getBatchList(this.batchListStatus, pageNumber, this.recordsPerPageCount.value)
.subscribe(response => {
this.batchList = response.batches;
// totalRecords is used to find the navigation links
this.totalRecords = response.batches[0].TotalRowCount;
this.pageNavLinks = Math.round(this.totalRecords / this.recordsPerPageCount.value);
this.loading = false;
});
}