4

我需要将我的选定页面p-table作为最后一页。

我能够得到我的表对象:

@ViewChild('myTable') myTable: DataTable;

ngOnInit() {

    this.subService.subsUpdated.subscribe(result => {
      this.fetchSubcontracts();
    });

    this.appForm.subAdded.subscribe(result => {
      this.added = 4;
      this.fetchSubs();
    });

  }

[first]我尝试将我的和[paginatorPosition]属性绑定p-table到一个属性,但没有奏效。

<p-table #myTable
           [value]="subs"
           sortMode="multiple"
           selectionMode="single"
           (onRowSelect)="onRowSelect($event)"
           (onRowUnselect)="onRowUnselect($event)"
           [(selection)]="selectedSub"
           [columns]="columns"
           dataKey="id"
           [paginator]="subs.length > 0"
           [rows]="5"
           [first]="added"
           >
4

3 回答 3

3

这对我有用:

@ViewChild('dt', { static: false }) table: Table;

this.table.first = Math.floor(this.table.totalRecords / this.table.rows) * this.table.rows;
this.table.firstChange.emit(this.table.first);
this.table.onLazyLoad.emit(this.table.createLazyLoadMetadata());
于 2019-11-27T08:27:47.043 回答
2

first属性是要显示的第一的索引,而不是要显示的第一页的索引。

在您的表格属性中,您已设置每页 5 行,因此如果相加等于 4,您将始终停留在包含第 4 行的第一页上。

所以添加应该是这样的Math.floor(this.subs.length/5)

于 2018-08-10T20:43:10.160 回答
1

尝试使用onPageChange()功能:

this.appForm.subAdded.subscribe(result => {
  // number of pages in the table
  const pageCount = Math.ceil(this.myTable.totalRecords / this.myTable.rows);
  // last page
  const page = pageCount - 1;
  this.myTable.onPageChange({
    pageCount,
    page,
    first: page * this.myTable.rows,
    rows: this.myTable.rows
  });
  this.fetchSubs();
});

代替

this.myTable.totalRecords

你也可以使用

this.subs.length

您还可以[first]="added"从 HTML中删除

于 2018-08-10T20:35:58.983 回答