datatables 1.10和自定义排序功能

问题描述:

我需要按周(星期一,周二,周三,周四,周五,周六,周日)排序列,似乎无法得到这个工作。请注意,我正在使用最新的1.10版本的数据表。datatables 1.10和自定义排序功能

它与其他扩展一起位于其自己的文件中,并在jquery.dataTables.js加载后调用,但在表初始化之前调用。

/* custom sorting by weekday */ 
$.extend($.fn.dataTableExt.oSort, { 
    "weekday-pre": function (a) { 
     return $.inArray(a, ["SUN","MON","TUE","WED","THU","FRI","SAT"]); 
    }, 
    "weekday-asc": function (a, b) { 
     return ((a < b) ? -1 : ((a > b) ? 1 : 0)); 
    }, 
    "weekday-desc": function (a, b) { 
     return ((a < b) ? 1 : ((a > b) ? -1 : 0)); 
    } 
}); 

然后在我的表初始化中,我指定了这个特定列的排序。值可以/仅将来自数据库的“SUN”,“MON”,“TUE”,“WED”,“THU”,“FRI”,“SAT”。

"columns": [ 
     ..... some column entries, 
    { 
     "data": "day", 
     "type": "weekday" 
    }, 
     ..... the rest of the column entries 

在控制台中没有错误,但是,排序就在我排序单击列标题默认到正规的字母排序。

得到这个与数据表工作1.10.0-beta.2:我刚定义aoColumns类型

$(function() { 
    $('#datatable').DataTable({ 
    "oLanguage": { 
     "sSearch": "Filter Data" 
    }, 
    "iDisplayLength": -1, 
    "sPaginationType": "full_numbers", 
    "aoColumns": [{ 
     "sType": "weekday" 
    },null] 
    }); 
}); 

注意。实际的排序仍然由您的代码完成。

看看这Plunk并告诉我,如果这是你想要的。 (在Chrome上测试cuz FF对于数据表和Plunker有点挑剔)

+1

实际上,我的代码没有错......我没有意识到自定义排序在使用服务器端数据时永远不会工作源大声笑... – user756659

+0

@ user756659刚刚阅读了评论后,挣扎了半个小时。如此明显......感谢好友 – Eldamir

+0

哈哈。是的,现在我回头看看它,我可以笑,因为它很明显,但是当你第一次开始使用DataTable时,它可以很容易地被你的思维过程打滑 - 当你开始看所有的选项时有很多事情要做及其运作。如果你正在使用pdo和serverside,你可能会对我修改的ssp类感兴趣。给我发消息,我可以发送它。 – user756659