【问题标题】:Row count in aggrid with pagination带有分页的 aggrid 中的行数
【发布时间】:2020-12-15 15:02:43
【问题描述】:

我正在使用带有分页(客户端)的 agggrid。

我需要获取当前页面中存在的行数。

当我使用下面的 api 时,它总是给我所有页面中所有行的计数。

gridApi.paginationGetRowCount()

gridApi.getDisplayedRowCount()

gridApi.paginationProxy.masterRowCount

【问题讨论】:

  • 你试过paginationGetPageSize()吗?
  • 嗨,我认为 pageSize 是需要在分页 Aggrid 中的给定页面中显示的行数。我需要存在的行数。 pageSize() 可以为 0。 pageSize() 始终是常量。

标签: pagination ag-grid ag-grid-angular


【解决方案1】:

你需要的是GridApi.paginationGetPageSize()

  • GridApi.paginationGetRowCount() 返回所有页面中的总行数。
  • GridApi.getDisplayedRowCount() 返回所有页面中的总行数,加上所有展开的行(使用 Row GroupingMaster Detail 时)。
  • GridApi.paginationProxy 是私有财产,不应使用。

如果要获取当前页面的行数。您可以自己计算该页面的startResultendResult。页面行数为endResult - startResult + 1

const printPagination = () => {
  const currentPage = gridApi.paginationGetCurrentPage();
  const totalPage = gridApi.paginationGetTotalPages();
  const totalResults = gridApi.paginationGetRowCount();
  const pageSize = gridApi.paginationGetPageSize();
  const startResult = currentPage * pageSize + 1;
  const endResult = Math.min(startResult + pageSize - 1, totalResults);

  console.log();
  console.log("Page size:", pageSize);
  console.log("Current page:", currentPage);
  console.log("Total pages:", totalPage);
  console.log("Total results:", totalResults);
  console.log("Start-end:", startResult, endResult);
  console.log("Number of rows in this page:", endResult - startResult + 1);
};

现场示例

下面的实时示例使用 React,但将该代码转换为 Angular 应该很简单

【讨论】:

  • 似乎 pageSize 是分页网格中给定页面中可以显示的最大行数。除最后一页外的所有页面都将具有 pageSize 行数,但分页网格中的最后一页可能最少有 1 行,最多有 pageSize 行。我只需要最后一页的计数。
  • 我已经更新了我的答案以考虑到最后一页
  • api.getRenderedNodes().length 似乎也是解决问题的方法。我还想要应用过滤器时当前页面上的行数。我正在使用自定义分页导航面板。
猜你喜欢
  • 2018-10-12
  • 2021-10-11
  • 1970-01-01
  • 1970-01-01
  • 2022-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多