2017-07-31 152 views
0

我有一個表格,它有不同數量的列,但是一列總是存在,儘管每次都有不同的位置,這取決於要顯示的數據(例如,可能是第2欄,第3欄,第4欄等)。此列我想設置爲初始排序列和排序DESC。顯示在此列中的數據是一個複選框,因此正在使用data-sort屬性對數據進行排序,其中1表示選中,0表示未選中。對不同列數的表進行排序的數據表

我需要做的是以下,我不知道如何實現它可以在任何位置(即有不同的指數)的列。如果有列的靜態數量那麼這將是罰款,我將能夠設置相應選項知道列索引如下:

$('#example').dataTable({ 
    "order": [[ 2, 'desc' ]] 
}); 

但隨着柱將取決於表不同數量內容然後我需要相應地引用列。我需要:

  • 將初始排序列設置爲此列;
  • 設置排序順序爲DESC。

< < UNTESTED >> - 我也需要相應地改變數據排序值(0或1)時,複選框被選中/未選中狀態。我還沒有測試過,但如果有答案,我會很感激反饋意見 - datatables是否會選擇對數據排序屬性的更改並相應地調整排序?如果不是,那麼在data-sort屬性更改之後,我可以傳遞給datatable進行重新排序?

TIA

回答

0

,因爲我無法找到任何方式實現這一目標使用的數據表我也做了以下內容:

的HTML

對於需要進行排序的列添加data-order屬性與'asc'或'desc'。

<th data-order="desc">Column Heading</th> 

腳本

var ordering = []; 
var theTable = jQuery('#example').DataTable(); 
theTable.columns().every(function(i) { 
    var header = this.header(); 
    if (jQuery(header).is('[data-order]')) { 
     var dataOrder = jQuery(header).attr('data-order'); 
     var theOrder = [ i, dataOrder ]; 
     ordering.push(theOrder); 
    } 
}); 
if(ordering.length > 0) { 
    theTable.order(ordering).draw(); 
} 
相關問題