我正在使用AG网格企业来显示我的数据。我为每列都有过滤器。我想显示过滤器下拉列表中每个过滤器元素的数量。请帮忙。就像过滤器显示“国家/地区”列中只有我们和加拿大一样,我想在这些过滤器元素旁边的括号内显示我们和加拿大的频率
答案 0 :(得分:0)
更新:添加了工作示例
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和示例,并查看官方demo和sources。
更新:添加了热点数据示例
一旦我们需要数据-与sorting
或filtering
相关,我们就can use API methods: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
过滤器计数都会重新计算
更新:通过
处理热更改cellRenderer
因此,ag-grid
团队注意到了这个问题,并且在backlock
上有此问题-在此之前-无法像我们尝试的那样处理您的要求。 Here,您可以找到一个问题(AG-2078)