2012-06-13 102 views
9

¿Cómo deshabilitar la ordenación en una fila/columna específica en jquery datatable usando una clase?jquery datatable disable ordenar en la fila específica

aquí está mi tabla de muestra;

<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'); 
    }); 

El código anterior funciona pero si hago clic en la siguiente columna que tiene una clasificación, se muestra de nuevo una flecha. aunque no es hacer clic; (

¿Cómo puedo desactivar la clasificación mediante el uso de una clase y no usar/volver a dibujar una tabla

+0

¿Qué es yo? hormiga por ordenar aquí? –

+0

El código anterior es solo una tabla de muestra :) Ya lo he editado ... – mrrsb

+0

Puede establecer 'bSortable' en falso para esas columnas, en' aoColumns' def. Verifique este ejemplo, la clasificación está deshabilitada en la primera y segunda columna http://live.datatables.net/awizop/edit#preview –

Respuesta

0

espero a continuación código funciona en su caso

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

Es necesario.. desactivar la clasificación a través de "bSortable" para esa columna específica

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

eso debería hacerlo ..;.)

0

Vine con casi la misma solución que en la pregunta, pero utilicé el "fnHeaderCallback". Por lo que yo entiendo, se llama después de volver a mostrar cada encabezado, por lo que no hay más preocupaciones acerca de la clase 'clasificación' que aparece de nuevo después de hacer clic en la columna al lado de la columna de destino.

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

documentación adicional sobre las devoluciones de llamada: http://datatables.net/usage/callbacks

9

Usted puede desactivar la clasificación usando una clase en la definición. Sólo añadir este código a la tabla de datos de inicialización:

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

tratar la siguiente respuesta .it trabaja para mí.

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

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

La única solución: primero Añadir class="sorting_disabled" a cualquier <th> que desea desactivar la ordenación, a continuación, añadir este código a la inicialización tabla de datos:

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