javascript - datatables 1.10 和自定义排序功能

标签 javascript jquery 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

控制台中没有错误,但是,当我通过单击列标题进行排序时,排序只是默认为常规字母排序。

最佳答案

让这个与 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/

相关文章:

javascript - 如何将多个函数结果绑定(bind)为选项以在表单选择弹出框中进行选择?

javascript - Meteor 调试并显示警报、日志和消息

javascript - 使用 jquery 将 keyup 事件添加到动态生成的元素

javascript - Img 在滚动时调整大小

javascript - 如何立即删除 css 转换?

javascript - jQuery 在悬停时滚动到 div 并返回到第一个元素

javascript - 使用ajax实现时如何在数据表中添加页面长度

javascript - 数据表 - 在加载完整数据集时预加载第一页数据

javascript - 从服务器异步加载的动态数据列表列表,用于使用 Protractor 进行测试

JQuery DataTables - 显示页面长度选项以及导出按钮