Ag-Grid:如何获取 lastRow 以进行自定义分页

Ag-Grid: how to get lastRow for custom pagination

所以我想为 AgGrid 创建一个自定义分页组件。我需要在 table 下显示以下符号(使用 Infinite Row Model

1 - 10 of 169

这是我设置数据源的方法:

  onGridReady(params): void {
    const dataSource = {
      getRows: (rowsParams: IGetRowsParams) =>
        this.myService.getData(...)
            .subscribe(data => rowsParams.successCallback(data.rows, data.amount))
    };

    params.api.setDatasource(dataSource);
  }

如您所见,我有 data.amount 值,它表示数据条目的总数 - 上面示例中的 169,存储在数据库中。

在我的自定义分页组件中,我可以访问 GridOptions class。如何获取我之前设置为 IGetRowsParamsdata.amount 值?

可能最简单的方法是在您的组件中保留对 "data.amount" 的引用。

好的,我找到了答案, 这是父组件示例

  public gridApi: GridApi;

  onGridReady(params): void {
    this.gridApi = params.api;

    const dataSource = {
      getRows: (rowsParams: IGetRowsParams) =>
        this.myService.getData(...)
            .subscribe(data => rowsParams.successCallback(data.rows, data.amount))
    };

    params.api.setDatasource(dataSource);
  }

分页组件为:

export class AgPaginationComponent {
  @Input()
  set gridApi(api: GridApi) {
    if (api) {
      api.addEventListener('modelUpdated', () => {
        console.log(api.paginationGetRowCount())
      })
    }
  }
}

事件侦听器需要捕捉准确的时刻,当你的数据 Observable 被解析时,最初 paginationGetRowCount 将被设置为 0