我正在尝试从此处的示例https://www.ag-grid.com/javascript-grid-filter-provided-simple/#filterOptions使用自定义过滤器,当我单击它时显示错误: 它甚至都不是日期过滤器,为什么会失败?在过滤器选项卡中,它也不会显示标题并显示未定义,示例是否不再起作用?
this.columnDefs.push({
colId: i + 1,
field: `${i + 1}`,
headerName: header,
filter: 'agNumberColumnFilter',
filterParams: {
filterOptions: ['inRange', 'equals', 'notEqual', 'lessThan', 'greaterThan', 'lessThanOrEqual', 'greaterThanOrEqual',
{
displayKey: 'lessThanWithNulls',
displayName: 'Less Than with Nulls',
test: function (filterValue, cellValue) {
return cellValue == null || cellValue < filterValue;
}
}
]
},
menuTabs: ['filterMenuTab'],
valueFormatter: (params: any) => {
if (!params || !params.data || !params.data.values)
return '';
let val = '';
if (params.node.rowIndex === params.data.rowId) {
const data = params.data.values.find(x => x.colId === params.colDef.colId);
val = this.formatValue(data);
}
params.value = val;
return params.value ? params.value : '';
},
valueGetter: (params: any) => {
if (!params || !params.data || !params.data.values)
return '';
let val = '';
if (params.node.rowIndex === params.data.rowId) {
const data = params.data.values.find(x => x.colId === params.colDef.colId);
val = this.formatValue(data);
val = val ? val.substr(0, val.indexOf(' ')).replace(',', '.') : '';
}
// use formatted value as number for filtering
params.value = +val;
return params.value;
},
);
<ag-grid #grid class="ag-fresh" style="width: 100%; height: 100%;" [enableColResize]="enableColResize"
[frameworkComponents]="frameworkComponents" [height]="height" [enableFilter]="true" [localeText]="localeText"
[columnDefs]="columnDefs" [autoSizeColumns]="autoSizeColumns" (cellDoubleClicked)="cellDoubleClicked($event)"
[enableSorting]="enableSorting" [rowSelection]="rowSelection" (selectionChanged)="selectionChanged()"
[rowData]="model">
</ag-grid>