web-dev-qa-db-de.com

DataTables Setzt die Standardsortierspalte und legt nicht sortierbare Spalten fest

Kann die Standardspalte so eingestellt werden, dass sie nach dem Laden der Seite sortiert wird? Ich möchte den einzigen datatablen Aufruf für verschiedene Tabellen auf meiner Site verwenden. Ist es möglich, eine th-Klasse hinzuzufügen, um dies zu erreichen?

Ich möchte auch die Sortierung für einige Spalten deaktivieren und da ich nach dem Aufruf von datatables suche, um alles zu tun, gibt es eine Klasse, die ich dem th hinzufügen kann, die es unsortierbar macht? 

Dies ist mein aufgerufenes dataTable-Skript

if (jQuery().dataTable) {
    $('#table-list-items').dataTable({
        "fnDrawCallback" : function () {
        },
        "aLengthMenu": [
        [10, 15, 25, 50, 100, -1],
        [10, 15, 25, 50, 100, "All"]
        ],
        "iDisplayLength": 25,
        "oLanguage": {
            "sLengthMenu": "_MENU_ Records per page",
            "sInfo": "_START_ - _END_ of _TOTAL_",
            "sInfoEmpty": "0 - 0 of 0",
            "oPaginate": {
                "sPrevious": "Prev",
                "sNext": "Next"
            }
        },
        "aoColumnDefs": [{
            'bSortable': true,
            'aTargets': [0]
        }]
    });
}
16
Pierce McGeough

Ja, das kannst du mit der aaSorting Option machen:

$('.table-asc0').dataTable({
  aaSorting: [[0, 'asc']]
});

Aufsteigend in der ersten Spalte bestellen.

$('.table-asc1').dataTable({
  aaSorting: [[1, 'asc']]
});

Für DataTables 1.10 wurde aaSorting durch order ersetzt.

$('.table-asc0').dataTable({
  order: [[0, 'asc']]
});
34
Balthazar

SET INITIAL ORDER (DataTables 1.10)

Verwenden Sie order , um die Anfangsreihenfolge der Tabelle festzulegen.

So sortieren Sie beispielsweise die zweite Spalte in absteigender Reihenfolge:

$('#example').dataTable({
   "order": [[ 1, 'desc' ]]
});

Siehe this jsFiddle für Code und Demonstration.


Deaktivieren der Sortierung nach einer Spalte (DataTables 1.10)

Verwenden Sie columnDefs und orderable , um die Sortierung bestimmter Spalten zu deaktivieren.

So deaktivieren Sie beispielsweise die Sortierung in der dritten und vierten Spalte:

$('#example').dataTable({
   "columnDefs": [
      { "targets": [2,3], "orderable": false }
  ]
});

Siehe this jsFiddle für Code und Demonstration.


EINSTELLEN BESTELLEN UND DEAKTIVIEREN FÜR DIE GLEICHE SPALTE (DataTables 1.10)

Sie können die Option order kombinieren, um die Anfangsreihenfolge der Tabelle festzulegen, und orderable , um die Sortierung in derselben Spalte zu deaktivieren.

Zum Beispiel:

$('#example').dataTable({
   "order": [[ 0, 'desc' ]],
   "columnDefs": [
      { "targets": [0], "orderable": false }
  ]
});

Siehe this jsFiddle für Code und Demonstration.

15
Gyrocode.com

Sie können dies über das data-order-Datenattribut in der Tabellen-HTML-Datei tun. Dies gibt Ihnen die Flexibilität, die Sie tabellenweise benötigen, und ermöglicht Ihnen dennoch die Verwendung eines einzigen Aufrufs zur Initialisierung Ihrer dataTables:

<table className="table table-condensed table-striped" data-order="[[ 2, &quot;asc&quot; ]]" id="tableId">
    <thead>
        <tr>
          <th>Col1</th>
          <th>Col2</th>
          <th>Col3</th>
          <th>Col4</th>
          <th>Col5</th>
          <th>Col6</th>
        </tr>
    </thead>
    <tbody>
        <tr>
          <td>Val1</td>
          <td>Val2</td>
          <td>Val3</td>
          <td>Val4</td>
          <td>Val5</td>
          <td>Val6</td>
        </tr>
    </tbody>
</table>
5
lee_mcmullen

Fügen Sie einfach folgenden Code hinzu:

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

Referenz: 

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

0
Akshay Pethani

ist richtig und hat gearbeitet:

    $('#admin').DataTable({
        "aaSorting": [[3, 'desc']],
        "bPaginate": true,
        "bProcessing": true,
        "columns": [
            {'data' : 'request_code'},
            {'data' : 'name_receiver'},
            {'data' : 'name_area'},
            {'data' : 'created_at'},
            {'data' : 'state'},
            {'data' : 'city'},
            {'data' : 'history'},
        ],
        "ajax": "{{route('my.route.name')}}",
        dom: 'Bfrtip',
        buttons: ['copy', 'Excel', 'print'],
    });
0
Dariush