我正在使用jQuery DataTables插件。排序工作正常,但是有沒有辦法讓一個列保持總是相同的,不管應用什麼排序?DataTable排序:使一列保持固定
例如,第一列只是簡單的訂單號:1,2,3,4,5 ... 當我按日期或其他排序時,第一列保持相同的順序:1 ,2,3 ..?
有沒有辦法做到這一點?所以,我並不是想通過第一列來禁用排序,但是當排序被另一列應用時,第一列保持不變。
我正在使用jQuery DataTables插件。排序工作正常,但是有沒有辦法讓一個列保持總是相同的,不管應用什麼排序?DataTable排序:使一列保持固定
例如,第一列只是簡單的訂單號:1,2,3,4,5 ... 當我按日期或其他排序時,第一列保持相同的順序:1 ,2,3 ..?
有沒有辦法做到這一點?所以,我並不是想通過第一列來禁用排序,但是當排序被另一列應用時,第一列保持不變。
您的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
你可以通過使用orderFixed選項定義排序,將始終應用到表。
例如,要始終按升序第一列進行排序:
$('#example').dataTable({
"orderFixed": [ 0, 'asc' ]
});
碰到這個問題,同時尋找一個同樣的問題的解決方案。 這是一個包含在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();
});
基本上索引列被重新編號,只要啓動order
或search
事件。 searchable
和orderable
設置爲false,因爲它們對索引列沒有影響(它仍然會被重新編號)。
感謝您的回答。然而,這正是我不想做的,我認爲每個人都會建議,所以我在我的信息中明確表示: 「所以,我並不想禁用按第一列排序,而是先將第一列當其他列應用排序時,列保持不變。「 – kasijus
@kasijus您是否已經有解決方案? –