我需要按工作日(星期一、星期二、星期三、星期四、星期五、星期六、星期日)对列进行排序,但似乎无法正常工作。请注意,我使用的是最新的 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
控制台中没有错误,但是,当我通过单击列标题进行排序时,排序只是默认为常规字母排序。
最佳答案
让这个与 dataTables 1.10.0-beta.2 一起工作:
$(function() {
$('#datatable').DataTable({
"oLanguage": {
"sSearch": "Filter Data"
},
"iDisplayLength": -1,
"sPaginationType": "full_numbers",
"aoColumns": [{
"sType": "weekday"
},null]
});
});
请注意,我刚刚在 aoColumns 中定义了一个类型。实际排序仍然由您的代码完成。
看看这个Plunk并告诉我这是否是您想要的。 (在 Chrome 上测试,因为 FF 在涉及数据表和 Plunker 时有点挑剔)
关于javascript - datatables 1.10 和自定义排序功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22057742/