javascript - 为什么 ag-grid 过滤器比较器没有执行?
问题描述
我目前使用的是 Angular 10.2ag-grid
版和 25.3.0 版
在按照此处的 ag-grid 的日期列自定义过滤器文档之后,我决定将其应用于数字列并对其进行一些修改。基本上,如果用户过滤一个小于 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 存在一些问题,但这些问题与 Column value Comparator 而不是filterParams
. 任何帮助,将不胜感激。谢谢!
解决方案
如果您想使用 agNumberComparator,您可以查看以下文档。比较器不是此处的 filterparams 属性。我认为您的比较器功能不会因此而被触发。 https://www.ag-grid.com/angular-grid/filter-number/#custom-number-support
推荐阅读
- sql - 如何解决聚合函数错误?
- php - 从 PHP 调用时未找到 DB2 函数
- function - 如何正确调用张量流中的函数
- java - 当我们使用关键字“throws”时,谁为我们处理异常?
- ruby-on-rails - 版本 5.1.12 后的乘客独立问题 / Nginx / Rails
- reactjs - 拉动 Scrollview 以显示 View - React Native
- amazon-web-services - 如何使用 Amazon Lex 从客户那里获取语音输入并使用 amazon connect 将该信息传递到正确的路径?
- powershell - 如何停止 powershell 舍入数字
- javascript - 点击后如何隐藏按钮
- node.js - 在 Docker 上构建 vue/quasar 应用程序时出错