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


231

我正在使用jquery DataTables插件。从他们的文档中:

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

是否可以启用排序但在初始化时禁用此首遍排序?我目前正在做初始排序服务器端,需要排序功能,但不需要此初始排序功能。

Answers:


566

好吧,我发现答案集“ aaSorting”为一个空数组:

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

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

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

5
这个答案是一个很大的帮助,但值得注意的是可能引起的混乱。如果col 0被预先排序为asc且禁用了此初始排序,则当用户首次单击col 0的标题时,它将以asc顺序排序。对于用户来说,这似乎什么也没有发生,因为他们期望desc顺序。第二次单击将对desc进行排序。为了解决这个问题,您可以设置asSorting: ['desc', 'asc']aoColumnDefs使第一次单击成为desc排序。
tomfumb 2014年

8
对于较新的版本,其顺序为:[]
达伦(Darren)

@tomfumb实际上,有一个GUI显示未排序。即使项目没有更改,第一次单击也将显示正在激活的排序。这对我足够了。
尼尔森

2
您也可以在表级别上进行设置-><table data-order="[]">
Howdy_McGee '18

此解决方案对我不起作用,但<table data-order="[]">对我有用。
Alper


25

试试这个:

$(document).ready( function () {
  $('#example').dataTable({
    "order": []
  });
});

这将解决您的问题。


1

在数据表选项中输入以下内容:

$(document).ready( function() {
  $('#example').dataTable({
    "aaSorting": [[ 2, 'asc' ]], 
    //More options ...

   });
})

解决方法如下: “ aaSorting”:[[2,'asc']],

2表示表格将按照第三列
asc的升序排序。


12
问题是如何“禁用初始排序”,而不是如何指定另一个排序顺序。这个答案更适合另一个问题。
Gone Coding
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.