2012-06-13 127 views
9

如何禁用jQuery數據表中使用類的特定行/列中的排序?jquery datatable在特定行中禁用排序

這裏是我的示例表;

<table> 
    <thead> 
    <tr> 
    <th class="sorting_disabled">Title1</th> 
    <th class="">Title2</th> 
    <th class="sorting_disabled">Title3</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr><td>Tag 1</td><td>Date 1</td><td>Date 2</td></tr> 
    <tr><td>Tag 2</td><td>Date 2</td><td>Date 2</td></tr> 
    <tr><td>Tag 3</td><td>Date 3</td><td>Date 3</td></tr> 
    <tr><td>Tag 4</td><td>Date 4</td><td>Date 4</td></tr> 
    <tr><td>Tag 5</td><td>Date 5</td><td>Date 5</td></tr> 
.... 
    </tbody> 
    </table> 

script;

$('.sortable thead tr th.sorting_disabled').livequery(function() { 
     $(this).removeClass('sorting'); 
     $(this).unbind('click'); 
    }); 

上面的代碼工作,但如果我點擊到下一列誰有一個排序再顯示一個箭頭。雖然它不能點擊;(

我如何使用類,而不是使用/重繪表禁用排序

+0

我是什麼螞蟻在這裏排序? –

+0

上面的代碼只是一個示例表:)我已經編輯它.. – mrrsb

+0

您可以在'aoColumns' def中爲這些列設置'bSortable'爲false。檢查這個例子,第一列和第二列的排序是禁用的http://live.datatables.net/awizop/edit#preview –

回答

0

我希望下面的代碼在你的情況

 $("#dataTable").dataTable({ 
      "aoColumns": [{"bSortable": false}, null,{"bSortable": false}] 
     }); 

需要。禁止通過 「bSortable」 排序爲特定的列

0
$(document).ready(function() { 
    $('#example').dataTable({ 
     "aoColumns": [ 
      { "bSortable": false }, 
      null, 
      { "bSortable": false } 
     ] 
    }); 
}); 
2
$('#example').dataTable({ 
    "aoColumnDefs": [ 
     { 'bSortable': false, 'aTargets': [ 1 ] } 
    ]}); 

應該這樣做..;。)

0

我問過幾乎相同的解決方案,但我使用了「fnHeaderCallback」。據我瞭解,它會在每個標題重新顯示後被調用,所以不必擔心在點擊目標列旁邊的列後再次出現的「排序」類。

$('.datatable').dataTable({ 
    "fnHeaderCallback": function() { 
    return $('th.sorting.sorting_disabled').removeClass("sorting").unbind("click"); 
    } 
}); 

約回調附加文檔:http://datatables.net/usage/callbacks

9

您可以禁用定義使用類排序。 就在這個代碼添加到DataTable的初始化:

// Disable sorting on the sorting_disabled class 
"aoColumnDefs" : [ { 
    "bSortable" : false, 
    "aTargets" : [ "sorting_disabled" ] 
} ] 
2

試試下面的答案對我來說。它的工作原理。

<table class="tablesorter" id="tmp"> 
<thead> 
    <tr> 
     <th>Area</th> 
     <th>Total Visitors</th> 
    </tr> 
</thead> 
<tbody> 
    <tr> 
     <td>Javascript</td> 
     <td>15</td> 
    </tr> 
    <tr> 
     <td>PHP</td> 
     <td>3</td> 
    </tr> 
    <tr> 
     <td>HTML5</td> 
     <td>32</td> 
    </tr> 
    <tr> 
     <td>CSS</td> 
     <td>14</td> 
    </tr> 
    <tr> 
     <td>XML</td> 
     <td>54</td> 
    </tr> 
</tbody> 
<tfoot> 
    <tr class="no-sort"> 
     <td><strong>Total</strong></td> 
     <td><strong>118</strong></td> 
    </tr> 
</tfoot> 

來源:http://blog.adrianlawley.com/tablesorter-jquery-how-to-exclude-rows

2
<th class="sorting_disabled">&nbsp;</th> 

$(document).ready(function() { 
    $('#yourDataTableDivID').dataTable({ 
     "aoColumnDefs": [ 
      { 
       "bSortable": false, 
       "aTargets": ["sorting_disabled"] 
      } 
     ] 
    }); 
}); 
0

唯一的解決辦法: 先加class="sorting_disabled"到要禁用排序任何<th>,那麼這段代碼添加到DataTable的初始化:

 // Disable sorting on the sorting_disabled class 
     "aoColumnDefs" : [ { 
      "bSortable" : false, 
      "aTargets" : [ "sorting_disabled" ] 
     } ], 
     "order": [ 
      [1, 'asc'] 
     ],