Ag grid 聚合-聚合、筛选

Ag grid 聚合-聚合、筛选,ag-grid,Ag Grid,在agGrid中,我有一个基于两列的聚合。应用过滤器时,基于两列的聚合不会更新。sum、max、min聚合函数没有问题,因为所有这些函数都基于同一列 以下是我遵循的步骤, 按列分组-->值聚合-->加权平均值(自定义聚合)-->添加筛选器 当我在加权平均值聚合计算后添加过滤器时,新的加权平均值不会刷新 我使用valueGetter函数计算了这个聚合(如下代码所示) 当我修改过滤器时,是否有方法更新来自valueGetter函数的聚合 提前谢谢 问候,, 维杰 您好Vijay,请添加您的代码示例,

在agGrid中,我有一个基于两列的聚合。应用过滤器时,基于两列的聚合不会更新。sum、max、min聚合函数没有问题,因为所有这些函数都基于同一列

以下是我遵循的步骤, 按列分组-->值聚合-->加权平均值(自定义聚合)-->添加筛选器

当我在加权平均值聚合计算后添加过滤器时,新的加权平均值不会刷新

我使用valueGetter函数计算了这个聚合(如下代码所示)

当我修改过滤器时,是否有方法更新来自valueGetter函数的聚合

提前谢谢

问候,, 维杰


您好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;
    }