我需要按工作日(周一,周二,周三,周四,周五,周五,周六,周日)排序一列,但似乎无法正常工作。请注意,我正在使用最新的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并告诉我这是否是您想要的。 (对于dataTables和Plunker,在Chrome cuz FF上进行测试有点挑剔)
关于javascript - 数据表1.10和自定义排序功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22057742/