Обновление: добавлен рабочий образец
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)