我有一个带有DateTime行的KoGrid。而且我希望能够对这一行进行排序。我尝试实现自定义sortFn函数来比较DateTimes而不是字符串。但它无法正常工作(3/03/2017 02:20 PM高于2016年4月31日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示例)匹配的项目?
答案 0 :(得分:0)
这是您的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
答案 1 :(得分:0)
sort函数需要返回1或-1或0,如果它们相同。你只返回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;}