typescript 如何在AG Grid中检索当前行数到结束行数

sauutmhj  于 2023-10-22  发布在  TypeScript
关注(0)|答案(2)|浏览(123)

在Ag-Grid分页中,它提供了总行数和行号,例如在下面的图像中,您可以看到101 to 200 of 8,618。其中8618是可以从gridApi.paginationGetRowCount()中检索到的总行数。但是我应该使用哪个参数来获取101 to 200计数呢?我无法在网格API中找到它。

ruyhziif

ruyhziif1#

通过获取这些信息:

  • 总行数(paginationGetRowCount),
  • 当前页码(paginationGetCurrentPage),以及
  • 页面大小(paginationGetPageSize

,您可以计算第一个项目编号。最后一项编号对于所选页面。
对于我的用例,我试图在页面通过(paginationChanged)事件更改时计算这些值。

<ag-grid-angular
  ...
  (paginationChanged)="onPaginationChanged($event)"
></ag-grid-angular>

对于firstItemNoForCurrentPage,您需要获得currentPageIndex * pageSize + 1totalRowCount之间的最小值。这是针对没有记录时的处理。
对于lastItemNoForCurrentPage,您需要获得currentPageIndex * pageSize + pageSizetotalRowCount之间的最小值。这是为了处理当前页面不包含pageSize的全部项目数。

onPaginationChanged = (event: PaginationChangedEvent<IOlympicData>) => {
  if (!this.gridApi) return;

  // Get current page - 0-index based
  let currentPageIndex = this.gridApi.paginationGetCurrentPage();

  // Get total count
  let totalRowCount = this.gridApi.paginationGetRowCount();

  // Get page size
  let pageSize = this.gridApi.paginationGetPageSize();

  let firstItemNoForCurrentPage = Math.min(
    currentPageIndex * pageSize + 1,
    totalRowCount
  );

  let lastItemNoForCurrentPage = Math.min(
    currentPageIndex * pageSize + pageSize,
    totalRowCount
  );

  console.log('firstItemNoForCurrentPage:', firstItemNoForCurrentPage);
  console.log('lastItemNoForCurrentPage:', lastItemNoForCurrentPage);
};

Demo @ StackBlitz

vhmi4jdf

vhmi4jdf2#

没有这样直接的API。但是您可以使用两个分页API来构造输出数据。

1. paginationGetCurrentPage()
 2. paginationGetPageSize()  // you can also put static page size value if it is static

你可以用索引值乘以页面大小来得到想要的输出。
(page-index * page-size + 1)+ '--' +((page-index + 1)* page-size)

this.agGrid.api.paginationGetPageSize() *this.agGrid.api.paginationGetCurrentPage() + 1) + '-' +  (this.agGrid.api.paginationGetCurrentPage()+1)*this.agGrid.api.paginationGetPageSize();

我为你创建了一个stackblitz示例。

相关问题