Ag grid 聚合-聚合、筛选
在agGrid中,我有一个基于两列的聚合。应用过滤器时,基于两列的聚合不会更新。sum、max、min聚合函数没有问题,因为所有这些函数都基于同一列 以下是我遵循的步骤, 按列分组-->值聚合-->加权平均值(自定义聚合)-->添加筛选器 当我在加权平均值聚合计算后添加过滤器时,新的加权平均值不会刷新 我使用valueGetter函数计算了这个聚合(如下代码所示) 当我修改过滤器时,是否有方法更新来自valueGetter函数的聚合 提前谢谢 问候,, 维杰Ag grid 聚合-聚合、筛选,ag-grid,Ag Grid,在agGrid中,我有一个基于两列的聚合。应用过滤器时,基于两列的聚合不会更新。sum、max、min聚合函数没有问题,因为所有这些函数都基于同一列 以下是我遵循的步骤, 按列分组-->值聚合-->加权平均值(自定义聚合)-->添加筛选器 当我在加权平均值聚合计算后添加过滤器时,新的加权平均值不会刷新 我使用valueGetter函数计算了这个聚合(如下代码所示) 当我修改过滤器时,是否有方法更新来自valueGetter函数的聚合 提前谢谢 问候,, 维杰 您好Vijay,请添加您的代码示例,
您好Vijay,请添加您的代码示例,这样我们就可以看到您实际在做什么,这可能与您的意图不同。解释你的期望和你实际得到的。最好编辑你的问题以包含新的信息,因为大多数人不会通过评论来了解细节。作为问题的一部分,代码和其他内容的格式也可以更好。另外,我认为您需要更多的代码细节。非常感谢,刚刚编辑了主要帖子-:)@Vijay您使用的是作为企业功能的ag grid aggregation还是尝试创建自定义聚合函数?@PratikBhat,是的,我使用的是来自企业功能的聚合,但这个问题与自定义聚合函数有关。我使用valueGetter函数,因为我需要从其他列访问值。谢谢
function weightedAverageGetter(params) {
var col = params.column.colId.split('.')[1];
var value = 0;
if (params.data){
value = params.data.qli?params.data.qli[col]:0;
if (col == 'P1prime__c' || col == 'P2Prime__c'){
value = Math.ceil(value);
}
}
var avgW = 0;
if (params.node){
var sumVal = 0;
var sumQty = 0;
for (var node in params.node.allLeafChildren){
var nodeValue = params.node.allLeafChildren[node];
var val = 0;
var qty = 0;
if (nodeValue.data){
val = nodeValue.data.qli?nodeValue.data.qli[col]:0;
qty = nodeValue.data.qli?parseFloat(nodeValue.data.qli.Quantity):0;
}
if (typeof val !=='undefined' && val != '' && typeof qty !=='undefined' && qty != '') {
sumQty += qty;
sumVal += qty*val;
}
}
avgW = sumVal/sumQty;
}
avgW = Math.round(avgW * 100) / 100;
if(!params.column.aggregationActive || Number.isNaN(avgW)){
avgW = '';
}
return params.data?value:avgW;
}