Ag-Grid: как получить lastRow для пользовательской нумерации страниц - PullRequest
0 голосов
/ 21 сентября 2019

Итак, я хочу создать пользовательский компонент разбивки на страницы для AgGrid.Мне нужно отобразить следующий знак под таблицей (используя Модель бесконечной строки )

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класс.Как я могу получить значение data.amount, которое я ранее установил в IGetRowsParams?

Ответы [ 2 ]

1 голос
/ 21 сентября 2019

Вероятно, проще всего просто сохранить ссылку на "data.amount" в вашем компоненте.

0 голосов
/ 21 сентября 2019

Хорошо, я нашел ответ, вот пример родительского компонента

  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

...