Aggrid Как вызвать forEachNodeAfterFilter после изменения rowData без изменения строки фильтра - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть пользовательская метка, в которой я отображаю количество отфильтрованных строк («в настоящее время отображаются результаты x из y»).Когда я меняю строку фильтра, она прекрасно работает, потому что я использую

(filterChanged)="onFilterChanged($event)"

И в моем файле ts:

onFilterChanged() {
    let filteredRowCount = 0;
    this.gridApi.forEachNodeAfterFilter(() => {
        filteredRowCount++;
    });
    this.numberToShow = filteredRowCount;
}

(переменная, с которой я связан, это numberToShow).

У меня есть кнопка обновления, которая приводит к обновлению this.rowData.Если пользователь применил фильтр и обновил данные, у меня нет программного способа узнать, сколько строк отображается в данный момент.

Есть предложения?

Спасибо!

1 Ответ

0 голосов
/ 28 февраля 2019

Вы можете решить эту проблему, имея newRowsAction: 'keep' в filterParams каждого из ваших столбцов.
Затем при нажатии кнопки обновления, вы должны добавить

if (this.gridApi.isAnyFilterPresent()) {
  this.gridApi.onFilterChanged() 
}

Это должно принудительно вызвать ваш filterChanged логика

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...