禁用datatables中的排序功能无效。

45

这是我正在使用的代码

oTable = $('#example').dataTable({
                "bSort": false,
                "bStateSave":true,
                "aoColumns": [ 
                   { "bSortable": false },
                   { "bSortable": false },
                   { "bSortable": false } ] 
            });
我遇到的问题是表格一开始为空,由用户输入填充。一旦用户开始向表格中输入内容,它会按产品ID对它们进行排序。我试图去除这种排序方式,使其按照输入顺序列出它们。
编辑:我得出结论,我的所有初始化设置都不起作用。我认为这与在表格仅包含标题时使用fnAddRow有关。
编辑2:我将其隔离到fnAddData。当我使用垃圾数据初始化表格时,一切都按照预期格式化,但一旦我使用fnAddData,它就会删除所有格式。

您可能还想查看https://cbabhusal.wordpress.com/2015/05/20/jquery-datatables-turn-off-sorting-of-a-particular-column/。 - Shiva
7个回答

103

试试这个:

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

26

可以尝试这样做:

这是为了禁用初始排序。

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

2
这应该是数据表的默认设置。谢谢。 - Onimusha
1
谢谢。搜索带我来了这里,而答案禁用了所有排序,最初的那个是我想要的。在这里找到了它,节省了我一些时间。 - Brad M

8

2
bSorthttp://datatables.net/ref#bSort)是在DataTables中禁用排序的正确方法。也许您可以链接到显示此参数仍启用排序的示例?请注意,保留HTML标签。

我无法链接该页面,因为需要登录才能从数据库中填充下拉菜单。我怀疑这与有一个空表然后添加行有关。我尝试了datatables.net网站上看到的每种方法,但似乎没有任何方法可行。排序总是出现。 - aport002

2
尝试这个方法:在表头标签中设置 data-orderable="false"。
<table id="orders">
   <thead>
     <tr>
       <th data-orderable="false">ID</th>
       <th>Customer Name</th>
       <th data-orderable="false">Total</th>
       <th>Date</th>
       <th data-orderable="false">Action</th>
     </tr>
   </thead>
</table>

1

0

我不想进行排序。 - aport002
添加一个带有时间戳的隐藏字段。将默认排序设置为此时间。项目将按照它们添加的顺序显示。 - Scherbius.com
我用索引号做了这个,但问题是在 fnAddData 运行后,没有一个初始参数被保留。我相信在 fnAddData 代码中的某个地方,oSettings 字段被清除了。 - aport002

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