Domanda

Non riesco a capirlo. Questa domanda è stata posta anche qui http://www.nabble.com/TableSorter-plugin---default-column-sort-DESC-instead--How--to25180761s27240.html#a25180761 senza risposta.

Ho provato

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

e modificando il file jquery.tablesorter.js sul valore predefinito 'desc' ma non funziona. Quando faccio clic sulle intestazioni di colonna, il primo ordinamento continua a salire, quindi l'utente deve fare doppio clic per scendere i valori.

Come posso ordinare a Tablesorter in ordine decrescente per impostazione predefinita?

È stato utile?

Soluzione

Sembra un bug nel codice tableorter, o sto fraintendendo cosa dovrebbe fare il parametro sortInitialOrder. Alla riga 536 imposta l'ordine del selezionatore osservando il numero di volte in cui la colonna è stata ordinata e prendendo il valore mod 2. Dovrebbe inoltre tenere conto del valore di sortInitialOrder.

Cambia la riga 536 da

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

a

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

E aggiungi dopo questa riga (in modo che il primo clic su una colonna diversa ti offra l'impostazione predefinita)

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

e cambia la riga 421 da

o.count = s[1];

a

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

in modo che l'ordine iniziale venga sovrascritto se viene applicato un sortList.

Quindi è possibile utilizzare il parametro sortInitialOrder su tablesorter per impostare un primo ordinamento predefinito per la colonna. Qualsiasi ordinamento fornito in sortList sovrascriverà sortInitialOrder fornito per l'intera tabella.

Nota che questo vale per Tablesorter 2.0.

Altri suggerimenti

Prova l'ultima versione dal sito tablesorter - questo sembra essere stato risolto da qualche parte tra la versione 2.0.3 e 2.0.5.

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

    }); 
    } 
); 
</script>

... che ha funzionato con l'ultima versione di tablesorter, ma non con quella precedente che avevo. Spero che sia d'aiuto!

Utilizzalo semplicemente, il secondo elemento dell'array è il criterio di ordinamento (0 = crescente, 1 = decrescente):

.tablesorter({ sortList: [[0, 1]] });
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top