如何从DataTables中删除排序选项?

Cha*_*hak 11 jquery-plugins datatables

我正在使用DataTables插件.我不想使用排序选项(按ASC或DESC顺序对列进行排序),默认情况下每个选项都有<thead>.如何删除排序图标?

小智 42

在jQuery DataTables的新版本1.10中,您必须使用ordering选项来禁用整个表的排序:

$('#example').DataTable({
    "ordering": false
});
Run Code Online (Sandbox Code Playgroud)

  • 我在文档中看不到排序*必须*全局使用,并且如果对所有列单独设置排序,则排序不会消失。然而,答案似乎是正确的。如果我将每一列设置为 `"ordering": false`,那么排序符号仍保留在第一列上,即使它不起作用。至少对我来说(DataTables 版本 1.10.20)。 (3认同)

Jay*_*zzi 15

与@ ravisolanki07非常相似,它只是实现这一目标的另一种方式.

var oTable = $('#example').dataTable( {
    "aoColumnDefs": [
        { "bSortable": false, "aTargets": [ 0, 1, 2, 3 ] }, 
        { "bSearchable": false, "aTargets": [ 0, 1, 2, 3 ] }
    ]
}); 
Run Code Online (Sandbox Code Playgroud)


Mar*_*rco 10

好的,所以这里的答案有点老了。所以我想我可以提供一个新的答案:

源文件

截至2018年,每个领域实现此目标的方法是:

$('#id-of-my-table').DataTable({
    "columnDefs": [
        { "orderable": false, "targets": [0, 4, 5, 6] },
        { "orderable": true, "targets": [1, 2, 3] }
    ]
});
Run Code Online (Sandbox Code Playgroud)

如您所见,目标接受列索引数组。


Kas*_*ngi 8

您可以尝试两种方法。

首先,尝试将“bSort”设置为 false。请注意,这将禁用所有排序。

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

其次,尝试将 aaSorting 设置为空。请注意,这将删除特定列的排序。 $('#jTable').dataTable({ "aaSorting" : [[]] });

请告诉我们是否适合您。希望能帮助到你,

卡西夫·索兰吉


tdu*_*eau 7

如果要禁用默认排序但保持列可排序,只需使用以下配置:

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


Jul*_* B. 5

您还可以使用数据属性在表本身上传递选项。

<table
   data-paging="false"
   data-searching="false"
   data-ordering="false"
>
Run Code Online (Sandbox Code Playgroud)

相同的原则适用于列标题。

<table>
<thead>
<tr>
    <th>I'm sortable</th>
    <th data-orderable="false">I'm not sortable</th>
</tr>
</thead>
Run Code Online (Sandbox Code Playgroud)

但是,我遇到了一种情况,我想删除所有列排序,并意识到th data-orderable="false"在所有列上使用 a 时,Datatable 仍会在第一列上添加图标,在这种情况下,请改用data-ordering表上的图标。

如果您使用相同的自定义脚本来生成所有数据表,这会很方便。