这是一个常见问题,通常需要手动定义filterParams和valueGetter。下面是示例代码:
//定义filterParams
const filterParams = {
filterOptions: [
'notContains', // 添加notContains选项
'equals',
'notEqual', // 添加 notEqual选项
'lessThanOrEqual',
'greaterThanOrEqual',
'inRange'
],
suppressAndOrCondition: true
};
//定义valueGetter函数
function valueGetter(params) {
if (params.colDef.filter === 'agTextColumnFilter') { //检查是否使用文字筛选器
return params.data[params.colDef.field]; //返回文本列数据
} else if (params.colDef.filter === 'agNumberColumnFilter') { //检查是否使用数字筛选器
return params.data[params.colDef.field]; //返回数字列数据
} else if (params.colDef.filter === 'agDateColumnFilter') { //检查是否使用日期筛选器
return params.data[params.colDef.field].valueOf(); //返回时间列数据
}
}
// 在树网格上设置filterParams和valueGetter
this.gridApi.setColumnDefs(this.columnDefs);
this.gridApi.setRowData(this.rowData);
this.gridApi.setFilterModel(this.filterModel);
this.gridApi.setFilterParams(filterParams);
this.gridApi.valueGetter = valueGetter;
在设置filterParams和valueGetter后,notContains和notEqual过滤器应该可以在treeData上工作了。