如何将AG Grid React Enterprise文本列过滤改为强制精确匹配
以下是适配AG Grid React Enterprise + Adaptable技术栈的两种实现方案,可根据实际业务需求选择:
方案1:AG Grid原生配置(无Adaptable过滤定制需求时使用)
直接在列定义中修改文本过滤器的默认规则,强制使用完全匹配,可自行选择是否允许用户切换其他匹配模式:
const columnDefs = [ { field: '需要强制完全匹配的文本列字段名', filter: 'agTextColumnFilter', filterParams: { // 设置默认选中的过滤规则为完全匹配 defaultOption: 'equals', // 可选配置:仅保留完全匹配选项,用户无法切换为包含/开头匹配等其他规则 filterOptions: ['equals'], // 可选配置:是否开启大小写敏感,默认false caseSensitive: false } }, // 其余列定义 ]
方案2:Adaptable侧全局/列级配置(使用Adaptable过滤能力时使用)
如果业务中使用了Adaptable接管AG Grid的过滤逻辑,需要在Adaptable初始化配置中修改过滤规则:
import { AdaptableOptions } from '@adaptabletools/react'; const adaptableOptions: AdaptableOptions = { // 其余Adaptable基础配置 predefinedConfig: { Filter: { // 全局配置:所有文本列默认使用完全匹配规则 DefaultFilterOperators: { String: 'Equals', }, // 可选配置:单独为指定列设置强制完全匹配,优先级高于全局配置 ColumnFilterRules: [ { ColumnId: '需要强制完全匹配的文本列字段名', DefaultOperator: 'Equals', // 可选配置:禁止用户切换其他匹配运算符 AvailableOperators: ['Equals'], } ] } } };
补充配置说明
- 若需要实现输入过滤文本时实时校验,不需要用户点击确认按钮,可在AG Grid的
filterParams中新增配置applyWhileTyping: true - 若需要忽略文本首尾空格再做匹配,可自定义过滤判定函数,示例如下:
filterParams: { defaultOption: 'equals', filterPredicate: (cellValue, filterValue) => { return cellValue?.trim() === filterValue?.trim(); } }
内容的提问来源于stack exchange,提问作者Henders
相关产品推荐
相关产品推荐

