我正在尝试为我的网格创建一个日期过滤器,该网格是使用 Angular 中的 ag 网格制作的。
我的代码如下:
{
field: 'data_determina',
headerName: 'Data determina',
cellDataType: 'date',
filter: "agDateColumnFilter",
filterParams : {
/* filterOptions: ['equals', 'greaterThan', 'lessThan', 'inRange'] */
},
valueFormatter: (params: any) => {
if (params && params.value) {
return moment(params.value).format('DD/MM/YYYY');
}
return null;
},
},
有人可以向我解释一下为什么日期没有被过滤吗?
添加过滤参数
var filterParams = {
comparator: (filterLocalDateAtMidnight, cellValue) => {
var dateAsString = cellValue;
if (dateAsString == null) return -1;
var dateParts = dateAsString.split('/');
var cellDate = new Date(
Number(dateParts[2]),
Number(dateParts[1]) - 1,
Number(dateParts[0])
);
if (filterLocalDateAtMidnight.getTime() === cellDate.getTime()) {
return 0;
}
if (cellDate < filterLocalDateAtMidnight) {
return -1;
}
if (cellDate > filterLocalDateAtMidnight) {
return 1;
}
return 0;
},
minValidYear: 2000,
maxValidYear: 2021,
inRangeFloatingFilterDateFormat: 'Do MMM YYYY',
};
像这样更改列定义
{
field: 'data_determina',
headerName: 'Data determina',
filter: "agDateColumnFilter",
filterParams: filterParams,
},