我有一个名为Account Verification
的列,该列返回值true
或false
。我将表格上的值格式化为Yes
和No
,但是在过滤列时,我仍然必须搜索true
或false
才能过滤列。我做了一个自定义过滤条件,但是没有用。有人有解决办法吗?
columns = [
{
headerName: 'Account Verification', field: 'accountVerified', filter: 'agTextColumnFilter',
// Cell renderer
valueFormatter: (data) => {
if (data.value === true) return 'Yes';
else return 'No';
},
// Custom filter
filterParams: {
condition: (searchTerm, cellValue) => {
if (searchTerm === 'Yes' || 'yes') {
return cellValue === true;
} else if (searchTerm === 'No' || 'no') {
return cellValue === true;
} else return cellValue === null;
}
}
}
]
"ag-grid": "^18.0.1"
答案 0 :(得分:0)
我认为实现此目标的最佳方法-使用内置的ag-grid方法,例如:
并提供了逻辑,可以将过滤器值转换为true / false。
或者,使用javascript在过滤器的“应用”按钮上添加事件监听器(如果您正在使用“应用”按钮来应用过滤器),则将调用fucntion来转换您的值。
目前没有示例,但是我以相同的方式开发了用于过滤器验证(自定义)的解决方案。
答案 1 :(得分:0)
尝试以下选项之一:
答案 2 :(得分:0)
您可以在filterParams中使用TextFormatter来在过滤期间修改过滤器值:
filterParams: { textFormatter: (filterValue) => 'yourvalueformatter' }
https://www.ag-grid.com/javascript-grid-filter-text/#text-formatter
答案 3 :(得分:0)
我遇到了同样的问题并检查了所有内置过滤器。 最后,我能够按照以下步骤解决问题 步骤:
安装 ag-grid-enterprise 包。 (npm install ag-grid-enterprise)
将过滤器设置为 agSetColumnFilter。 (过滤器:'agSetColumnFilter')
添加 filterParams 并指定您在列定义中使用的相同 valueFormatter
过滤器参数:{
valueFormatter: (数据) => {
if (data.value === true) 返回“是”;
否则返回“否”;
}
}