C'è un modo per disabilitare l'ordinamento iniziale per DataTables jquery?


231

Sto usando il plug-in DataTables di jquery . Dalla loro documentazione:

Se l'ordinamento è abilitato, DataTables eseguirà un ordinamento di primo passaggio durante l'inizializzazione. È possibile definire su quali colonne viene eseguito l'ordinamento e la direzione di ordinamento con questa variabile. L'array aaSorting dovrebbe contenere un array per ogni colonna da ordinare inizialmente contenente l'indice della colonna e una stringa di direzione ('asc' o 'desc').

È possibile abilitare l'ordinamento ma disabilitare questo ordinamento di primo passaggio all'inizializzazione? Attualmente sto eseguendo il lato server di ordinamento iniziale e ho bisogno della funzionalità di ordinamento, ma non ho bisogno di questa funzionalità di ordinamento iniziale.

Risposte:


566

Bene, ho trovato la risposta impostata "aaSorting" su un array vuoto:

$(document).ready( function() {
    $('#example').dataTable({
        /* Disable initial sort */
        "aaSorting": []
    });
})

Per le versioni più recenti di Datatables (> = 1.10) utilizzare l' opzione ordine :

$(document).ready( function() {
    $('#example').dataTable({
        /* No ordering applied by DataTables during initialisation */
        "order": []
    });
})

5
Questa risposta è stata di grande aiuto, ma vale la pena notare la potenziale confusione causata. Se col 0 è preordinato asc e questo ordinamento iniziale è disabilitato, quando un utente fa clic per la prima volta sull'intestazione di col 0, ordinerà in ordine asc. All'utente sembra che non accada nulla, poiché si aspettano un ordine discendente. Un secondo clic ordinerà desc. Per ovviare a questo è possibile impostare asSorting: ['desc', 'asc']in aoColumnDefsmodo che il primo clic sia un ordinamento desc.
Tomfumb,

8
Per le versioni più recenti il ​​suo ordine: []
Darren,

@tomfumb In realtà, c'è una GUI che mostra che non è ordinata. Il primo clic mostrerà l'ordinamento attivato, anche se gli elementi non cambiano. Questo è sufficiente per me.
Nelson,

2
Puoi anche impostarlo a livello di tabella -><table data-order="[]">
Howdy_McGee

Questa soluzione non funzionerà per me ma <table data-order="[]">funziona per me.
Alper il


25

Prova questo:

$(document).ready( function () {
  $('#example').dataTable({
    "order": []
  });
});

questo risolverà il tuo problema.


1

Nelle opzioni datatable inserire questo:

$(document).ready( function() {
  $('#example').dataTable({
    "aaSorting": [[ 2, 'asc' ]], 
    //More options ...

   });
})

Ecco la soluzione: "aaSorting": [[2, 'asc']],

2significa che la tabella verrà ordinata per terza colonna,
ascin ordine crescente.


12
La domanda era come "disabilitare l'ordinamento iniziale", non come specificare un altro ordinamento. Questa risposta è più adatta a una domanda diversa.
Codice finito
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.