我需要按工作日(周一,周二,周三,周四,周五,周五,周六,周日)排序一列,但似乎无法正常工作。请注意,我正在使用最新的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/

10-09 18:00
查看更多