【问题标题】:Ag-Grid: how to get lastRow for custom paginationAg-Grid:如何获取 lastRow 进行自定义分页
【发布时间】:2020-01-22 03:34:48
【问题描述】:

所以我想为 AgGrid 创建一个自定义分页组件。我需要在表格下显示以下标志(使用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 类。如何获取我之前设置为 IGetRowsParamsdata.amount 值?

【问题讨论】:

    标签: angular typescript pagination ag-grid


    【解决方案1】:

    在您的组件中只保留对“data.amount”的引用可能是最简单的。

    【讨论】:

    • 这是一个很好的建议,虽然不是一个自给自足的建议。我想要一个用于所有网格的组件,所以我必须一直复制粘贴这个愚蠢的补丁。
    【解决方案2】:

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

      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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-27
      • 2021-05-02
      • 2018-11-10
      • 2017-03-19
      • 1970-01-01
      • 2020-08-31
      • 2020-03-31
      • 2021-07-22
      相关资源
      最近更新 更多