2009-10-23 10 views
16

Ich kann das nicht herausfinden. Diese Frage wurde auch hier http://www.nabble.com/TableSorter-plugin---default-column-sort-DESC-instead--How--to25180761s27240.html#a25180761 ohne Antwort gestellt.Wie kann jQuery Tablesorter standardmäßig absteigend sortiert werden?

Ich habe versucht,

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

und die jquery.tablesorter.js Datei auf ‚desc‘ auf Standard zu ändern, aber es funktioniert nicht. Wenn ich auf die Spaltenüberschriften klicke, ist die erste Sortierung immer noch aufsteigend, so dass der Benutzer zweimal klicken muss, um die Werte abzustufen.

Wie kann ich Tablesorter standardmäßig nach absteigend sortieren lassen?

Antwort

15

Sieht aus wie ein Fehler im Tablesorter-Code, oder ich missverstehe, was der sortInitialOrder-Parameter tun soll. In Zeile 536 wird die Sortierreihenfolge festgelegt, indem die Anzahl der Spalten sortiert und der Wert mod 2 berücksichtigt wird. Außerdem sollte der Wert von sortInitialOrder berücksichtigt werden.

ändern Linie 536 von

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

zu

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

Und fügen Sie nach dieser Zeile (so dass der erste Klick auf eine andere Spalte Sie die Standard gibt)

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

und ändern Linie 421 von

o.count = s[1]; 

zu

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

so dass die anfängliche Ordnung außer Kraft gesetzt wird, wenn ein sortList angewendet wird.

Anschließend können Sie den sortInitialOrder-Parameter zu setsorter verwenden, um eine standardmäßige erste Sortierreihenfolge für die Spalte einzurichten. Jede Sortierung, die in der Sortierliste bereitgestellt wird, überschreibt die für die gesamte Tabelle bereitgestellte Anweisung sortInitialOrder.

Beachten Sie, dass dies für Tablesorter 2.0 gilt.

+0

Ja, es funktioniert! Vielen Dank! –

+0

Ausgezeichnet - benötigt, um dies auf einige Admin-Tools hier auf der Website zu tun :) –

+0

Sie sind ein Meister Tvanfosson! – Aaron

7

einfach diese, zweites Element in Array Sortierreihenfolge (0 = aufsteigend, 1 = absteigend):

.tablesorter({ sortList: [[0, 1]] }); 
+0

gerade funktioniert =) – Anubis

21

Probieren Sie die neueste Version von der tablesorter Website - scheint diese 2.0 zwischen Version irgendwo befestigt zu werden .3 und 2.0.5.

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

    }); 
    } 
); 
</script> 

... das funktionierte mit der neuesten Version von salesorter, aber nicht mit der vorherigen, die ich hatte. Ich hoffe es hilft!

Verwandte Themen