DataTable排序:使一列保持固定

时间:2015-07-21 21:35:15

标签: jquery sorting datatables

我正在使用jQuery DataTables插件。排序工作正常,但有没有办法让一列保持不变,无论应用什么排序?

例如,第一列只是简单的订单号:1,2,3,4,5 ...... 当我按日期或其他任何方式排序时,第一列保持相同的顺序:1,2,3 ......?

有办法做到这一点吗?所以,我不是试图通过第一列禁用排序,但是当另一列应用排序时,使第一列保持不变。

3 个答案:

答案 0 :(得分:2)

在寻找同一问题的解决方案时遇到了这个问题。 以下是docs中包含的解决方案。

$(document).ready(function() {
var t = $('#example').DataTable( {
    "columnDefs": [ {
        "searchable": false,
        "orderable": false,
        "targets": 0
    } ],
    "order": [[ 1, 'asc' ]]
} );

t.on( 'order.dt search.dt', function () {
    t.column(0, {search:'applied', order:'applied'}).nodes().each( function (cell, i) {
        cell.innerHTML = i+1;
    } );
} ).draw();

});

基本上,每当触发ordersearch事件时,索引列都会重新编号。 searchableorderable设置为false,因为它们对索引列没有影响(无论如何它仍将被重新编号)。

答案 1 :(得分:0)

您可以使用orderFixed选项来执行此操作,该选项定义将始终应用于表格的排序。

例如,要始终按升序对第一列进行排序:

$('#example').dataTable( {
    "orderFixed": [ 0, 'asc' ]
} );

答案 2 :(得分:-1)

您的HTML代码看起来像这样。将类添加到要禁用排序的列。

$t1

然后添加您的dataTable选项。

<table class="table table-bordered" id="example" >
<thead>
<tr id="tbl_header1">
    <th  class="no-sort" name="prop_ref_no" style="min-width:80px">PropRef</th>
    <th  class="no-sort" name="title" style="min-width:80px">title</th>
    <th  name="publish_status" style="min-width:80px">Publish status</th>
    <th  name="Bedrooms" style="min-width:200px">Bedrooms</th>
</tr>
</thead>

SRC:https://datatables.net/forums/discussion/21164/disable-sorting-of-one-column