ag-grid:在过滤器测试功能中访问行数据

Posted

技术标签:

【中文标题】ag-grid:在过滤器测试功能中访问行数据【英文标题】:ag-grid: access row data in filter test function 【发布时间】:2020-03-22 00:36:05 【问题描述】:

在网格列中使用自定义过滤器选项时,我遇到需要将 cellValue 与同一行的其他值进行比较,并且似乎找不到如何这样做,因为没有引用行数据传递给test 函数。

columnDefs: [

    field: "Column 1",
    (...)
    filterParams: 
        filterOptions: [
            'lessThan',
            'greaterThan',
            
                displayKey: 'lessThanColumn2',
                displayName: 'Less Than column 2',
                test: function(filterValue, cellValue) 
                    return cellValue < rowData.column2; // <------ how?
                
            ,
    

(...)
]

使用 valueGetter 将所有需要的数据包含在单元格值中并使用 Cell Renderer 仅显示相关部分似乎是一种解决方法。

是否可以在没有自定义过滤器的情况下以任何其他方式实现这一目标?

【问题讨论】:

我认为自定义过滤器更适合行级过滤。您可以做的是定义一个满足您需求的自定义过滤器并从列测试功能触发它 【参考方案1】:

ColDef 也有可能定义 filterValueGetter,你可以尝试做这样的事情:

filterValueGetter: (params: ValueGetterParams) => 
    const rowData = params.data.$sourceDataItem;
    return rowData; // pass all row data
,

我猜你的测试函数中的 filterValue 现在将包含行数据。

【讨论】:

以上是关于ag-grid:在过滤器测试功能中访问行数据的主要内容,如果未能解决你的问题,请参考以下文章

初始加载后 ag-grid 刷新列过滤器

以角度将列标题过滤器保存在 ag-grid 中

需要在 AG-Grid 过滤器中使用空格分隔值来返回每个匹配项

如何使用 ag-grid 自定义过滤器组件构建查找搜索功能

在 ag-grid 中带有下拉菜单的自定义过滤器在角度 10 中不起作用

如何更改 ag-grid 日期过滤器占位符格式