【发布时间】:2022-03-02 15:09:53
【问题描述】:
我在 AgGrid 中有一个 JSON 日期列,其中包含 20K + 记录。我正在使用日期比较器对日期进行排序。有没有比下面更好的方法来对此类日期类型进行排序,因为我在对大型数据集进行排序和过滤时遇到应用程序缓慢的问题。
用于排序
comparator: function (date1, date2) {
var date1Number = fnDateToComparableNumber(moment(date1).toDate());
var date2Number = fnDateToComparableNumber(moment(date2).toDate());
if ((date1Number === null || isNaN(date1Number)) && (date2Number === null || isNaN(date2Number))) {
return 0;
}
if (date1Number === null || isNaN(date1Number)) {
return -1;
}
if (date2Number === null || isNaN(date2Number)) {
return 1;
}
return date1Number - date2Number;
}
用于过滤
filterParams: {
//applyButton: true,
clearButton: true,
// provide comparator function
comparator: function (filterLocalDateAtMidnight, cellValue) {
// We create a Date object for comparison against the filter date
if (cellValue == '') {
return 1;
}
var cellDate = moment(cellValue).toDate();
// Now that both parameters are Date objects, we can compare
if (cellDate < filterLocalDateAtMidnight) {
return -1;
} else if (cellDate > filterLocalDateAtMidnight) {
return 1;
} else {
return 0;
}
}
},
注意:
- 我正在使用 moment 进行日期操作
- Excel 导出需要 JSON 日期。否则 processCellCallback 在大数据的情况下是昂贵的。 我对 excel 格式做了一些修改,否则 excel 会将日期显示为数字。
- 我们拥有 Ag-Grid 的企业许可证
【问题讨论】:
-
你找到解决办法了吗