2012-06-13 3 views
9

Как отключить сортировку в определенной строке/столбце в jquery datatable с помощью класса?jquery datatable disable sort в определенной строке

вот мой образец таблицы;

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

сценарий;

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

выше код работает, но если я нажму на следующий столбец, у которого сортировка его показывает снова стрелку. хотя его не кликабельны; (

Как отключить сортировку с помощью класса и не использует/перерисовывать таблицу

+0

Что такое означает сортировку здесь ?? –

+0

выше код - всего лишь образец таблицы :) Ive отредактируйте его уже .. – mrrsb

+0

Вы можете установить 'bSortable' значение false для этих столбцов в' aoColumns' def. В этом примере сортировка отключена на первом и втором столбцах 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

попробовать следующий ответ .it работает для меня.

<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'] 
     ], 
Смежные вопросы