有没有办法禁用jquery DataTables的初始排序?

smo*_*oak 220 jquery jquery-datatables

我正在使用jquery DataTables插件.从他们的文件:

如果启用了排序,则DataTables将在初始化时执行第一次排序.您可以使用此变量定义执行排序的列以及排序方向.aaSorting数组应包含一个数组,用于最初排序的每列,包含列的索引和方向字符串('asc'或'desc').

是否可以启用排序但在初始化时禁用此第一次排序?我目前正在进行初始排序服务器端并需要排序功能,但不需要这种初始排序功能.

smo*_*oak 537

好吧,我发现答案集"aaSorting"为空数组:

$(document).ready( function() {
    $('#example').dataTable({
        /* Disable initial sort */
        "aaSorting": []
    });
})
Run Code Online (Sandbox Code Playgroud)

对于较新版本的Datatables(> = 1.10),请使用订单选项:

$(document).ready( function() {
    $('#example').dataTable({
        /* No ordering applied by DataTables during initialisation */
        "order": []
    });
})
Run Code Online (Sandbox Code Playgroud)

  • 对于较新版本的订单:[] (8认同)
  • 这个答案是一个很大的帮助,但值得注意的是潜在的混乱.如果col 0已预先排序为asc并且此初始排序已禁用,则当用户首次单击col 0的标题时,它将按asc顺序排序.对于用户来说,这似乎没有任何反应,因为他们期望desc顺序.第二次单击将对desc进行排序.为了解决这个问题,你可以在`aoColumnDefs`中设置`asSorting:['desc','asc']`,这样第一次点击就是desc排序. (5认同)
  • 你也可以在表级别设置它 - >`<table data-order ="[]">` (2认同)

Rav*_*avi 93

根据最新的api文档:

$(document).ready(function() {
    $('#example').dataTable({
        "order": []
    });
});
Run Code Online (Sandbox Code Playgroud)

更多信息


Fen*_*sel 22

试试这个:

$(document).ready( function () {
  $('#example').dataTable({
    "order": []
  });
});
Run Code Online (Sandbox Code Playgroud)

这将解决您的问题.