jQuery DataTables是否有禁用初始排序的方法?

294
我正在使用jquery DataTables插件。从他们的文档中得知:
如果启用了排序,则DataTable将在初始化时执行第一次排序。您可以使用此变量定义要执行排序的列以及排序方向。aaSorting数组应包含每个要初始排序的列的数组,其中包含列的索引和方向字符串('asc'或'desc')。
是否可以启用排序但在初始化时禁用此第一次排序?我目前正在服务器端进行初始排序,需要排序功能,但不需要此初始排序功能。
3个回答

684

我发现将“aaSorting”设置为空数组可以解决问题:答案

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

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

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

7
这个答案提供了很大的帮助,但值得注意的是它可能会导致混淆。如果列0按升序预先排序并禁用此初始排序,则当用户首次点击列0的标题时,它将按升序排序。对于用户来说,这看起来像什么也没有发生,因为他们期望是降序排列。第二次点击将进行降序排列。为了解决这个问题,您可以在aoColumnDefs中设置asSorting:['desc','asc'],以便第一次点击是降序排序。 - tomfumb
8
对于更新版本,其顺序为:[]。 - Darren
@tomfumb 实际上,有一个GUI显示它没有排序。第一次点击将显示排序被激活,即使项目没有改变。这对我来说已经足够了。 - Nelson
3
你可以在表格级别上进行设置 -> <table data-order="[]"> - Howdy_McGee
1
这个解决方案对我不起作用,但是<table data-order="[]">对我有用。 - Alper
提示:在“fnServerParams”函数中使用“if(aoData[0].value == 1) { console.log("first"); }”来检测是否为数据表格初始化。 - Eduardo Lucio

115

根据最新的API文档:

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

更多信息


0
在datatable选项中加入以下内容:
$(document).ready( function() {
  $('#example').dataTable({
    "aaSorting": [[ 2, 'asc' ]], 
    //More options ...

   });
})

这是解决方案: "aaSorting": [[ 2, 'asc' ]], 2 表示表格将按第三列排序, asc 表示升序。

17
问题是如何 "禁用初始排序",而不是指定另一种排序顺序。这个答案更适用于另一个问题。 - iCollect.it Ltd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接