2015-07-21 150 views
4

我正在使用jQuery DataTables插件。排序工作正常,但是有沒有辦法讓一個列保持總是相同的,不管應用什麼排序?DataTable排序:使一列保持固定

例如,第一列只是簡單的訂單號:1,2,3,4,5 ... 當我按日期或其他排序時,第一列保持相同的順序:1 ,2,3 ..?

有沒有辦法做到這一點?所以,我並不是想通過第一列來禁用排序,但是當排序被另一列應用時,第一列保持不變。

回答

-1

您的HTML代碼看起來像這樣。向要禁用排序的列中添加一個類。

<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> 

然後這個添加您的dataTable選項。

$('#example').dataTable({ 
    "columnDefs": [ { 
     "targets": 'no-sort', 
     "orderable": false, 
} ]}); 

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

+1

感謝您的回答。然而,這正是我不想做的,我認爲每個人都會建議,所以我在我的信息中明確表示: 「所以,我並不想禁用按第一列排序,而是先將第一列當其他列應用排序時,列保持不變。「 – kasijus

+0

@kasijus您是否已經有解決方案? –

1

你可以通過使用orderFixed選項定義排序,將始終應用到表。

例如,要始終按升序第一列進行排序:

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

碰到這個問題,同時尋找一個同樣的問題的解決方案。 這是一個包含在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,因爲它們對索引列沒有影響(它仍然會被重新編號)。