Отображать количество строк рядом с каждым фильтром в сетке - PullRequest
0 голосов
/ 07 сентября 2018

Я использую AG grid enterprise для отображения моих данных. У меня есть фильтры для каждого столбца. Я хочу показать количество элементов фильтра внутри самого фильтра. Пожалуйста помоги. Это похоже на то, что если фильтр показывает, что у нас есть только мы и Канада в столбце страны, я хочу отобразить частоты нас и Канады в скобках рядом с этими элементами фильтра

1 Ответ

0 голосов
/ 08 сентября 2018

Обновление: добавлен рабочий образец

filterParams: { cellRenderer: "countryFilterRenderer"}

countryFilterRenderer(params) {
  let count = this.rowData.filter(i=>i.country.name==params.value).length;
  return `${params.value}(${count})`;
}

rowData:[{country:{name:..., code:...}];

rowData определение просто для ясности.

Для получения дополнительной информации проверьте doc с образцамии официальное демо с источниками .

Обновление: добавлен горячий образец данных

Как только нам нужно получить данные, связанные с sorting или filtering, мы можем использовать методы API : forEachNodeAfterFilter, forEachNodeAfterFilterAndSort, getDisplayedRowCount.

sportFilterRenderer(params){
    let count;
    if(this.gridApi.getDisplayedRowCount() != this.rowData.length){
      count = 0;
      this.gridApi.forEachNodeAfterFilter(node=>{
        if(node.data.sport == params.value)
          count++;
      })
    }
    else{
        count = this.rowData.filter(i=>i.sport==params.value).length;
    }
    return `${params.value}(${count})`;
}

https://plnkr.co/edit/bCI0SJ (проверьте фильтры страны и спорта)

В выборке plnkr Счетчик в sport фильтр будет пересчитываться каждый раз при выборе \ отмене выборачто-нибудь из country filter

Обновление: обработка горячих изменений с помощью cellRenderer

Итак, команда ag-grid заметила эти проблемы, и они установили ее на backlock- до этого - нет способа удовлетворить ваши требования так же, как мы пытались. Здесь Вы можете найти проблему (AG-2078)

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