3

在网格列中使用自定义过滤器选项时,我遇到了将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 仅显示相关部分似乎是一种解决方法。

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

4

1 回答 1

0

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

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

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

于 2020-04-20T06:03:00.327 回答