No puedo entender esto. Esta pregunta también se hizo aquí http://www.nabble.com/TableSorter-plugin---default-column-sort-DESC-instead--How--to25180761s27240.html#a25180761 sin respuesta.

Lo he intentado.

    $.tablesorter.defaults.sortInitialOrder = 'desc';

Y alterando el archivo jquery.tablesorter.js por defecto a 'desc' pero no funciona. Cuando hago clic en los encabezados de las columnas, el primer orden sigue ascendiendo, por lo que el usuario tiene que hacer clic dos veces para descender los valores.

¿Cómo puedo hacer que Tablesorter ordene descendiendo por defecto?

16
Matt McCormick 23 oct. 2009 a las 19:56

3 respuestas

La mejor respuesta

Parece un error en el código del clasificador de tablas, o no entiendo qué se supone que debe hacer el parámetro sortInitialOrder. En la línea 536 establece el orden del clasificador observando el número de veces que la columna se ha ordenado y tomando el valor mod 2. También debe tener en cuenta el valor de sortInitialOrder.

Cambiar la línea 536 de

this.order = this.count++ % 2;

Para

this.order = this.count++ == 0 ? this.order : (1 - this.order);

Y agregue después de esta línea (para que el primer clic en una columna diferente le dé el valor predeterminado)

$headers.not($cell).each( function() {
    this.count = 0;
});

Y cambie la línea 421 de

o.count = s[1];

Para

o.order = o.count = s[1];

Para que el orden inicial se anule si se aplica una sortList.

Luego puede usar el parámetro sortInitialOrder para tablesorter para configurar un primer orden de clasificación predeterminado para la columna. Cualquier pedido proporcionado en sortList anulará sortInitialOrder proporcionado para toda la tabla.

Tenga en cuenta que esto se aplica a Tablesorter 2.0.

15
tvanfosson 23 oct. 2009 a las 17:57

Simplemente use esto, el segundo elemento en la matriz es el orden de clasificación (0 = ascendente, 1 = descendente):

.tablesorter({ sortList: [[0, 1]] });
9
mcNux 12 ene. 2016 a las 13:48

Pruebe la última versión del sitio del clasificador: parece que esto se solucionó en algún lugar entre la versión 2.0.3 y 2.0.5.

<script type="text/javascript">
$(document).ready(function() 
    { 
        $("#theTable").tablesorter({ 
            sortInitialOrder: 'desc',
            sortList: [[3,1]] // etc.

    }); 
    } 
); 
</script>

... que funcionó con la última versión de tablesorter, pero no con la anterior que tenía. ¡Espero eso ayude!

22
Sean 17 may. 2011 a las 02:36