Sorting ag栅格角度自定义排序参数显示为未定义
我已将以下比较器设置为Sorting ag栅格角度自定义排序参数显示为未定义,sorting,ag-grid,Sorting,Ag Grid,我已将以下比较器设置为columnDef 。。。 比较器:(date1:string,date2:string):number=>this.dateComparator(date1,date2), ... 还有一个自定义函数,可以按如下日期对字符串进行排序 dateComparator(date1:string,date2:string):数字{ 常数d1=新日期(日期1); const d2=新日期(日期2); //自定义逻辑和返回。。 } 但是,date1和date2参数是未定义的。有人
columnDef
。。。
比较器:(date1:string,date2:string):number=>this.dateComparator(date1,date2),
...
还有一个自定义函数,可以按如下日期对字符串进行排序
dateComparator(date1:string,date2:string):数字{
常数d1=新日期(日期1);
const d2=新日期(日期2);
//自定义逻辑和返回。。
}
但是,
date1
和date2
参数是未定义的
。有人能帮我一下吗。我写了同样的比较器
export function dateComparator(date1: string, date2: string) {
const date1Number = date1 ? new Date(date1).getTime() : null;
const date2Number = date2 ? new Date(date2).getTime() : null;
if (date1Number === null && date2Number === null) {
return 0;
}
if (date1Number === null) {
return -1;
}
if (date2Number === null) {
return 1;
}
return date1Number - date2Number;
}
但如果您在某些情况下更改单元格的值(从日期更改为字符串-就像我的情况一样,如果日期为null,我将显示“从未记录”,然后我们应该将其替换)-并且只显示一个字符串,您可以使用下一个比较器:
export function dateComparator(date1: string, date2: string) {
const neverLog = 'Never Logged';
const date1Number = date1 === neverLog ? null : new Date(date1).getTime();
const date2Number = date2 === neverLog ? null : new Date(date2).getTime();
if (date1Number === null && date2Number === null) {
return 0;
}
if (date1Number === null) {
return -1;
}
if (date2Number === null) {
return 1;
}
return date1Number - date2Number; }
如果不确定在比较器中传递的日期值是否为有效字符串,则可以先检查它并在比较之前对其进行清理
function dateComparator(date1, date2) {
var date1Number = validateDateinput(date1);
var date2Number = validateDateinput(date2);
if (date1Number === null && date2Number === null) {
return 0;
}
if (date1Number === null) {
return -1;
}
if (date2Number === null) {
return 1;
}
//custom logic and return..
return date1Number - date2Number;
}
function validateDateinput(date) {
// handle null and undefined values. add more logic here as per use case
if (date === undefined || date === null) {
return null;
}
//string is valid to create date
return new Date(date);
}
comparator
的参数如下:comparator(valueA、valueB、nodeA、nodeB、isInverted)。是否有可能对该列使用自定义渲染器或格式化程序函数?那么您可能希望使用nodeA和nodeB参数,而不是valueA或valueB。请在plunker或codesandbox上添加更多代码或理想情况下添加完整的托管代码。@MattNienow,感谢您提供的线索。文档有点混乱。但根本的问题是,我有一个自定义的渲染器,它导致了问题,通过添加valueGetter