【发布时间】:2021-09-05 10:04:34
【问题描述】:
我目前使用的是 Angular 10.2 版和 ag-grid 25.3.0 版
遵循 ag-grid here 的日期列自定义过滤器文档后,我决定将其应用于数字列并稍作修改。基本上,如果用户过滤一个小于 0 的数字,它应该将过滤器和单元格值乘以 100 并进行比较。如果不是,则正常比较这些值。我的具体列定义如下:
{
field: 'roi',
headerName: 'ROI',
valueGetter: this.calculateROI.bind(this),
filter: 'agNumberColumnFilter',
filterParams: {
comparator: function(filterValue: number, cellValue: number) {
console.log(filterValue);
if (filterValue < 0) {
filterValue *= 100;
cellValue *= 100;
}
if (cellValue < filterValue) return -1;
if (cellValue === filterValue) return 0;
return 1;
}
},
valueFormatter: this.percentFormat.bind(this),
cellClassRules: {
'cell-failure': (params: ValueFormatterParams) => params.value < 0,
'cell-success': (params: ValueFormatterParams) => params.value > 0,
'cell-even': (params: ValueFormatterParams) => params.value === 0,
}
},
默认列定义还具有可排序、过滤和调整大小的所有设置为true。
我的问题是比较器功能甚至没有触发。控制台中没有控制台日志,即使它是比较器函数的第一行。我在 StackOverflow 上检查了 ag-grid 的 GitHub 问题和其他问题,但没有成功。
存在一些 Stackoverflow 问题,但这些问题与列值比较器有关,而不是 filterParams 中的比较器。任何帮助,将不胜感激。谢谢!
【问题讨论】:
标签: javascript angular ag-grid ag-grid-angular ag-grid-ng2