Sto provando a impostare l'ordinamento predefinito sulla seconda colonna nel mio databile jquery. Di default ordina per indice 0. Sto usando la sintassi "aaSorting": [[ 1, "asc" ]]
ma evidenzia la colonna che non voglio sul carico iniziale. Come posso impostare l'ordinamento predefinito di una colonna specifica senza evidenziare la colonna come se non fosse coinvolto alcun ordinamento e la colonna dell'indice 0 fosse utilizzata.ordinamento predefinito dati jquery
risposta
ci sono un paio di opzioni:
Subito dopo l'inizializzazione DataTable, rimuovere le classi di smistamento sull'elemento TD nel TBODY.
Disabilitare le classi di ordinamento utilizzando http://datatables.net/ref#bSortClasses. Il problema è che disabiliterà le classi di ordinamento per le richieste di ordinamento degli utenti, che potrebbero o meno essere ciò che si desidera.
Fare in modo che il server fornisca la tabella nell'ordinamento richiesto e non applicare un ordinamento predefinito sulla tabella (
aaSorting:[]
).
Quindi sembra che non ci sia una soluzione integrata nella propria API. –
No. Se si desiderava che questa opzione fosse fondamentale, sarebbe necessario aggiungerla a DataTable: non è un requisito che ho mai incontrato durante lo sviluppo di DataTable, ma è sicuramente qualcosa che mi verrà in mente e che dimostra di essere una richiesta popolare e sicuramente la aggiungerò. Fino ad allora le tre opzioni sopra si applicano :-) –
Il suggerimento n. 3 sopra lo ha fatto per me. È molto più semplice disabilitare l'ordinamento e gestirlo semplicemente lato server per i risultati iniziali. Assortimento –
È possibile utilizzare la funzione fnSort, vedere i dettagli qui:
Ecco il codice vero e proprio che lo fa ...
$(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'] ]);
});
di non avere la colonna evidenziata, modificare il CSS in questo modo:
table.dataTable tr.odd td.sorting_1 { background-color: transparent; }
table.dataTable tr.even td.sorting_1 { background-color: transparent; }
Funziona anche come approccio per ordinare la prima colonna come discendente. Grazie! – veeTrain
+1 mi hai salvato un sacco di dolore e sofferenza !! Questa è stata la soluzione più facile per me. La documentazione di Datatables non è molto esplicativa e confusa. Saluti. – TheOptimusPrimus
@TheOptimusPrimus Accetto: sarebbe bello se suddividessero cose semplici come questa :) – theJerm
La migliore opzione è disabilitare l'ordinamento e solo alimentare i dati con l'ordinamento desiderato (dal database o altra fonte). Prova ad aggiungere questo al tuo 'datatable': "bSort": false
I datatables supportano gli attributi di dati HTML5 per questa funzionalità.
Esso supporta più colonne nel criterio di ordinamento (è 0-based)
<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>
Ora il mio jQuery è semplicemente $('table').DataTables();
e ho la mia seconda e terza colonna ordinati in ordine decrescente/asc.
Ecco alcuni altri attributi bello per il <table>
che mi ritrovo il riutilizzo:
data-page-length="-1"
imposterà la lunghezza della pagina per Tutti (25 passare per la lunghezza di pagina 25) ...
data-fixed-header="true"
... Fare un'ipotesi
Ho avuto anche questo problema. Avevo usato l'opzione stateSave
e questo ha causato questo problema.
Rimuovi questa opzione e il problema è risolto.
uso questo funziona per me: "ordine": [[1, "ASC"]],
questo ha funzionato per me:
jQuery('#tblPaging').dataTable({
"sort": true,
"pageLength": 20
});
sufficiente includere il seguente codice:
$(document).ready(function() {
$('#tableID').DataTable({
"order": [[ 3, "desc" ]]
});
}
);
articolo di riferimento completa con l'esempio:
https://datatables.net/examples/basic_init/table_sorting.html
vuoi dire che non vuoi l'evidenziazione per ogni azione di smistamento? Se è così, basta cambiare il css per la colonna ordinata dello stesso colore del colore di sfondo della colonna originale – shennyL
Voglio che le colonne cambino colore sull'ordinamento esplicito, ma su qualcosa di simile al paging, voglio che sia paging per colonna 1 senza di esso mostrando esplicita per il cambio di colonna. L'impaginazione ordina dalla colonna 0 senza cambiare il colore della colonna quando si passa alla pagina 2. –