あなたの列フィールドが「名前」で、あなたがマップを構築しようとすると、フィルタのcellRendererにこれを参照したと仮定すると:
var nameValueToCount = {};
function updateNameValueCounts() {
nameValueToCount = {};
gridOptions.api.forEachNodeAfterFilter((node) => {
if(!nameValueToCount.hasOwnProperty(node.data.name)) {
nameValueToCount[node.data.name] = 1;
} else {
nameValueToCount[node.data.name] = nameValueToCount[node.data.name] + 1;
}
});
}
そして、あなたのコラムDEFは次のようになります。
{
headerName: "Name",
field: "name",
width: 120,
filter: 'set',
filterParams: {
cellRenderer: NameFilterCellRenderer
}
},
そして最後に、NameFilterCellRenderer
は次のようになります。
function NameFilterCellRenderer() {
}
NameFilterCellRenderer.prototype.init = function (params) {
this.value = params.value;
this.eGui = document.createElement('span');
this.eGui.appendChild(document.createTextNode(this.value + " (" + nameValueToCount[params.value] + ")"));
};
NameFilterCellRenderer.prototype.getGui = function() {
return this.eGui;
};
あなたがめざしuldはupdateCountryCounts
を呼び出して、データが変更されたとき(新しい/更新されたデータか、フィルタが更新された時など)更新する必要がありますが、これはあなたのユースケースでうまくいくはずです