Я использую AG grid Enterprise для отображения своих данных. У меня есть фильтры для каждого столбца. Я хочу показать количество каждого фильтрующего элемента в самом раскрывающемся списке фильтров. Пожалуйста помоги. Это как если бы фильтр показывает, что у нас есть только мы и Канада в столбце страны, я хочу отображать частоты нас и канады в скобках рядом с этими фильтрующими элементами.
Update: added working sample
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
определение просто для ясности.
Для получения дополнительной информации проверьте док с образцами и официальный демонстрация с источники.
Update: added hot data sample
Если нам нужны данные, связанные с 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
.
Update: hot changes handling via
cellRenderer
Итак, команда ag-grid
заметила эти проблемы, и они есть на backlock
- до этого - нет способа удовлетворить ваши требования так, как мы пытались. Здесь вы можете найти проблему (AG-2078)
«когда я нажимаю кнопку фильтра» в фильтре какого столбца. Предоставьте образец данных или скрипач, и я постараюсь помочь.
Я имел в виду фильтр по колонке страны. Моя сетка состоит из двух столбцов: страны и города. Я использую сетевое предприятие AG. Строка будет иметь название страны и города. Когда я нажимаю кнопку фильтра в столбце страны, значения фильтра (каждое отдельное название страны) должны содержать значение того, сколько случаев этой страны присутствует в сетке.
Хочу примерно так: stackoverflow.com/questions/40865679/…
Большое спасибо, это сработало. Извините, я новичок в сетке AG.
У меня есть еще одно сомнение. Если у меня есть два столбца с агрегированными данными в фильтре (например, столбец страны в приведенном выше примере), после фильтрации одного из столбцов агрегированные данные не обновляются в другом столбце. Есть идеи, как обновлять агрегированные данные каждый раз, когда фильтруется столбец?
создайте новый вопрос, чтобы избежать чрезмерного расширения рабочего образца, и предоставьте свой код.
Это тот же код, который вы предоставили в plunker. Я просто добавил еще один столбец с агрегированными данными. После фильтрации одного из двух столбцов совокупные данные другого столбца не обновляются.
Не понимаю, что ты имеешь в виду и чего хочешь достичь
Я объясню. Скажем, моя сетка состоит из двух столбцов: города и страны. Оба показывают данные подсчета вместе с вариантами фильтров, как и ваш код для столбца страны. Теперь, скажем, я применяю фильтр к столбцу страны, чтобы отфильтровать две страны. Естественно, данные счетчика фильтра столбца города должны измениться, верно? (Поскольку есть две страны, которые отфильтрованы). Этого не происходит. Это похоже на то, что мы должны обновлять сетку каждый раз при изменении фильтра вместе с данными счетчика фильтра. Теперь это имеет смысл?
> Естественно, данные счетчика фильтра столбца города должны измениться, верно? на основе образца rowData
представляют собой только исходные данные, поэтому если вам нужны данные hot
- с ними нужно обращаться по-другому
Это так, спасибо тебе большое. Просто небольшой глюк. Как только я отменяю выбор фильтрующего элемента, счетчик рядом с ним не становится 0 при отмене выбора. Чтобы отразить значение 0, сначала я должен выйти из фильтра, снова нажать кнопку фильтра, чтобы увидеть, что счетчик невыбранных вариантов стал 0. Есть предложения, чтобы значение 0 отражалось сразу после отмены выбора?
Таким образом, похоже, что это возможно только через собственный FilterComponent
, потому что вы сможете обрабатывать filterChangedCallback
и filterModifiedCallback
непосредственно внутри компонента и изменять результат в необходимом формате.
Если возможно, не могли бы вы привести небольшой пример? Извините, что беспокою вас этим, но, как я уже упоминал, я новичок в этом и многому у вас научился. Опять же, никакого давления.
получил информацию от разработчиков - проверьте сообщение.
Извините, я не поняла. Скажем, у меня есть две колонки, страна и город. Когда я нажимаю кнопку фильтра, в столбце страны должны отображаться США (20) и Великобритания (10). Как я могу подсчитать частоту каждого типа данных? Есть механизм зацикливания или что-то в этом роде?