it-swarm.com.de

standard-Sortierung für Jquery-Datentabellen

Ich versuche, die Standard-Sortierung auf die zweite Spalte in meiner Jquery-Datentabelle zu setzen. Standardmäßig wird nach Index 0 sortiert. Ich verwende die "aaSorting": [[ 1, "asc" ]]-Syntax, hebt jedoch die Spalte hervor, die ich beim ersten Laden nicht möchte. Wie kann ich die Standardsortierung einer bestimmten Spalte festlegen, ohne dass die Spalte hervorgehoben wird, als ob keine Sortierung beteiligt wäre und die Indexspalte 0 verwendet würde.

54
Mike Flynn

Es gibt verschiedene Möglichkeiten:

  1. Entfernen Sie kurz nach dem Initialisieren von DataTables die Sortierklassen des Elements TD im TBODY.

  2. Deaktivieren Sie die Sortierklassen mit http://datatables.net/ref#bSortClasses . Das Problem dabei ist, dass die Sortierklassen für Benutzer-Sortieranforderungen deaktiviert werden - was Sie vielleicht wollen oder nicht.

  3. Lassen Sie den Server die Tabelle in der erforderlichen Sortierreihenfolge ausgeben und wenden Sie keine Standardsortierung für die Tabelle an (aaSorting:[]).

55
Allan Jardine

Hier ist der eigentliche Code, der es tut ...

$(document).ready(function()
{
  var oTable = $('#myTable').dataTable();

  // Sort immediately with column 2 (at position 1 in the array (base 0). More could be sorted with additional array elements
  oTable.fnSort( [ [1,'asc'] ] );

  // And to sort another column descending (at position 2 in the array (base 0).
  oTable.fnSort( [ [2,'desc'] ] );
} );

Um die Spalte nicht hervorzuheben, ändern Sie das CSS wie folgt:

table.dataTable tr.odd td.sorting_1 { background-color: transparent; }
table.dataTable tr.even td.sorting_1 { background-color: transparent; }
47
theJerm

Sie können die Funktion fnSort verwenden. Details finden Sie hier:

http://datatables.net/api#fnSort

15
Zeev Novikov

Die beste Option ist das Deaktivieren der Sortierung und das Zuführen von Daten mit der gewünschten Sortierreihenfolge (aus Datenbank oder anderer Quelle). Versuchen Sie, dies zu Ihrer Datentabelle hinzuzufügen: "bSort": falsch

3
ealex_ru

Ich hatte auch dieses Problem. Ich hatte die Option stateSave verwendet, und dieses Problem wurde dadurch verursacht.
Entfernen Sie diese Option und das Problem ist gelöst.

0
Majid Basirati

verwenden Sie dies, es funktioniert für mich: "Reihenfolge": [[1, "ASC"]],

0
Bassem Shahin

Das hat für mich funktioniert:

       jQuery('#tblPaging').dataTable({
            "sort": true,
            "pageLength": 20
        });
0
Versatile

Fügen Sie einfach folgenden Code hinzu:

    $(document).ready(function() {
        $('#tableID').DataTable( {
            "order": [[ 3, "desc" ]]
        } );
    } 
);

Vollständiger Referenzartikel mit dem Beispiel: 

https://datatables.net/examples/basic_init/table_sorting.html

0
Akshay Pethani

Datatables unterstützt HTML5-Daten- * Attribute für diese Funktionalität.

Es unterstützt mehrere Spalten in der Sortierreihenfolge (0-basiert).

<table data-order="[[ 1, 'desc' ], [2, 'asc' ]]">
    <thead>
        <tr>
            <td>First</td>
            <td>Another column</td>
            <td>A third</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>z</td>
            <td>1</td>
            <td>$%^&*</td>
        </tr>
        <tr>
            <td>y</td>
            <td>2</td>
            <td>*$%^&</td>
        </tr>
    </tbody>
</table>

Jetzt ist meine jQuery einfach $('table').DataTables(); und ich bekomme meine zweite und dritte Spalte in absteigender/aufsteigender Reihenfolge.

Hier sind ein paar andere nette Attribute für den <table>, die ich wiederverwenden kann:

data-page-length="-1" setzt die Seitenlänge auf Alle (Durchlauf 25 für Seitenlänge 25) ...

data-fixed-header="true" ... Schätze mal 

0
th3byrdm4n