ag-grid 过滤器不适用于格式化数值?
ag-grid filter not working with formatted number values?
我将 ag 网格与 angularjs 一起使用,过滤器不适用于格式化数字。我使用带货币值的格式化数字。
下面是 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, "" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
};
});
这里的问题是过滤器不适用于这些格式化的数字,似乎只适用于 999 以下的值。
谁能帮我解决这个过滤问题?
如果您希望过滤器对这些格式化值起作用,您应该使用 valueGetter
而不是 valueFormatter
您应该在 Definition.
列中将上述格式化程序函数实现为 valueGetter
数字过滤器也不起作用,因为为了让您的格式化数字得到解释,它应该是一个文本过滤器。
这是来自官方文档的example。
我将 ag 网格与 angularjs 一起使用,过滤器不适用于格式化数字。我使用带货币值的格式化数字。
下面是 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, "" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
};
});
这里的问题是过滤器不适用于这些格式化的数字,似乎只适用于 999 以下的值。 谁能帮我解决这个过滤问题?
如果您希望过滤器对这些格式化值起作用,您应该使用 valueGetter
而不是 valueFormatter
您应该在 Definition.
valueGetter
数字过滤器也不起作用,因为为了让您的格式化数字得到解释,它应该是一个文本过滤器。
这是来自官方文档的example。