如何禁用数据表默认排序?

How to disable datatables default sorting?

我正在从数据库中获取记录并显示在 table 中。对于搜索,我使用了 datatables。但我想禁用数据 table 的默认排序。所以我尝试使用以下代码禁用排序

    $('#offer_table').dataTable({
         "aaSorting": []
  });

它运行良好,但问题是,它显示了一些警报

如何解决这个问题?可能这个问题很愚蠢,但很抱歉,我在 google 中尝试解决此问题,但我无法解决。谢谢。

这可能由于某些原因而发生,但通常是因为您尝试初始化两次或在初始化后设置属性。

查看此 link 了解有关此问题的更多信息。

是的,只是为了补充 douglasf89 的回答,您可能正在尝试初始化数据表两次。如果必须这样做,首先需要调用

yourTable.destroy();

在初始化之间。

因此,下面的代码是有效的:

function createTable() {
  yourTable = $('#offer_table').dataTable({
     "aaSorting": []
  });
}
createTable();
yourTable.destroy();
createTable();

不过,这个 link 更彻底地回答了您的问题。

虽然您的问题可能不是由排序引起的,但可以使用其他语法来完成此操作。遗留数据表文档 - (legacy.datatables.net/ref),您可以将排序替换为

$('#example').dataTable( {
  "bSort": false
} );

要禁用对特定列的排序,请使用

$('#example').dataTable( {
    "aoColumnDefs": [
      { "bSortable": false, "aTargets": [ 0 ] }
] } );

要更改默认的排序依据列,请使用

var oTable = $('#example').dataTable();

// Sort immediately with columns 0 and 1
oTable.fnSort( [ [0,'asc'], [1,'asc'] ] );