【问题标题】:ag-grid filter not working with formatted number values?ag-grid 过滤器不适用于格式化的数值?
【发布时间】:2019-08-08 05:03:40
【问题描述】:

我正在使用带有 angularjs 的 ag 网格,但过滤器不适用于格式化数字。我使用带有货币值的格式化数字。

下面是columndef代码:

{ headerName:"GBO", field: "GBO", width: 200, editable:true, cellClass: "number-cell",filter:'agNumberColumnFilter',
    cellRenderer : function(params){
    if(params.value == "" || params.value == null)
    return '-';
    else return params.value;
    }
}

在将数据分配给网格之前,我使用以下格式设置数字:

$scope.formatNumberOnly = function(num,c, d, t){
                //console.log(num );    
                    var n = getNumber(num);
                    //var n = this, 
                    c = isNaN(c = Math.abs(c)) ? 2 : c, 
                    d = d == undefined ? "." : d, 
                    t = t == undefined ? "," : t, 
                    s = n < 0 ? "-" : "", 
                    i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", 
                    j = (j = i.length) > 3 ? j % 3 : 0;
                   return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
                 };
        });

这里的问题是过滤器不适用于这些格式化的数字,并且似乎只适用于高达 999 的值。 谁能帮我解决这个过滤问题?

【问题讨论】:

    标签: ag-grid ag-grid-angular


    【解决方案1】:

    如果您希望过滤器处理这些格式化的值,您应该使用valueGetter 而不是valueFormatter 您应该在列定义中将上述格式化程序函数实现为valueGetter

    此外,数字过滤器也不起作用,因为为了解释您的格式化数字,它应该是一个文本过滤器。

    这是来自官方文档的example

    【讨论】:

    猜你喜欢
    • 2020-11-19
    • 2016-11-24
    • 2020-09-27
    • 2020-08-25
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 2022-12-16
    • 2020-06-12
    相关资源
    最近更新 更多