如何在KoGrid中实现DateTime排序
How to implement DateTime sorting in the KoGrid
我有一个带有 DateTime 行的 KoGrid。我希望能够对这一行进行排序。我尝试实现自定义 sortFn 函数来比较 DateTimes 而不是字符串。但它不能正常工作(3/03/2017 02:20 PM 高于 31/04/2016 02:20 PM)
sortFn:function (a, b) {
var a1 = moment(a,"'DD/MM/YYYY hh:mm A").format("YYYY-MM-DD HH:mm");
var b1 = moment(b,"'DD/MM/YYYY hh:mm A").format("YYYY-MM-DD HH:mm");
return (a1 > b1);
}
https://jsfiddle.net/L681pgny/
我该如何解决?以及如何调试 sortFn 函数?
附加问题:排序功能现在只对当前页面有效。是否可以对所有页面中的所有项目进行排序并在页面上显示 5(对于上面的 jsfiddle 示例)匹配项目?
- 当您使用 format 时,您会将 moment 转换为字符串,请省略该部分。
- 没有很好的记录,但显然 sortFn 需要 return 1 或 -1 才能正常工作
这是您的 sortFn 应包含的内容
var a1 = moment(a,"'DD/MM/YYYY hh:mm A");
var b1 = moment(b,"'DD/MM/YYYY hh:mm A");
return a1>b1?1:-1;
检查工作fiddle
排序函数需要 return 1 或 -1 或 0(如果它们相同)。您只是 returning 1 和 0。
sortFn:function (a, b) {
var a1 = moment(a,"'DD/MM/YYYY hh:mm A");
var b1 = moment(b,"'DD/MM/YYYY hh:mm A");
return a1.isBefore(b1) ? 1 : -1;}
我有一个带有 DateTime 行的 KoGrid。我希望能够对这一行进行排序。我尝试实现自定义 sortFn 函数来比较 DateTimes 而不是字符串。但它不能正常工作(3/03/2017 02:20 PM 高于 31/04/2016 02:20 PM)
sortFn:function (a, b) {
var a1 = moment(a,"'DD/MM/YYYY hh:mm A").format("YYYY-MM-DD HH:mm");
var b1 = moment(b,"'DD/MM/YYYY hh:mm A").format("YYYY-MM-DD HH:mm");
return (a1 > b1);
}
https://jsfiddle.net/L681pgny/
我该如何解决?以及如何调试 sortFn 函数?
附加问题:排序功能现在只对当前页面有效。是否可以对所有页面中的所有项目进行排序并在页面上显示 5(对于上面的 jsfiddle 示例)匹配项目?
- 当您使用 format 时,您会将 moment 转换为字符串,请省略该部分。
- 没有很好的记录,但显然 sortFn 需要 return 1 或 -1 才能正常工作
这是您的 sortFn 应包含的内容
var a1 = moment(a,"'DD/MM/YYYY hh:mm A");
var b1 = moment(b,"'DD/MM/YYYY hh:mm A");
return a1>b1?1:-1;
检查工作fiddle
排序函数需要 return 1 或 -1 或 0(如果它们相同)。您只是 returning 1 和 0。
sortFn:function (a, b) {
var a1 = moment(a,"'DD/MM/YYYY hh:mm A");
var b1 = moment(b,"'DD/MM/YYYY hh:mm A");
return a1.isBefore(b1) ? 1 : -1;}