J'essaie de définir le tri par défaut sur la deuxième colonne de mon jQuery datatable. Il trie par défaut l'index 0. J'utilise la syntaxe "aaSorting": [[ 1, "asc" ]]
mais elle met en évidence la colonne que je ne veux pas au chargement initial. Comment définir le type par défaut d'une colonne spécifique sans la mettre en surbrillance comme si aucun tri n'était impliqué et que la colonne d'index 0 était utilisée.
Il y a plusieurs options:
Juste après l’initialisation de DataTables, supprimez les classes de tri sur l’élément TD du TBODY.
Désactivez les classes de tri à l'aide de http://datatables.net/ref#bSortClasses . Le problème, c'est qu'il désactivera les classes de tri pour les demandes de tri des utilisateurs, ce qui peut être ou ne pas être ce que vous voulez.
Demandez à votre serveur de sortir la table dans l'ordre de tri requis et n'appliquez pas de tri par défaut sur la table (aaSorting:[]
).
Voici le code qui le fait ...
$(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'] ] );
} );
Pour ne pas avoir la colonne en surbrillance, modifiez le CSS comme suit:
table.dataTable tr.odd td.sorting_1 { background-color: transparent; }
table.dataTable tr.even td.sorting_1 { background-color: transparent; }
Vous pouvez utiliser la fonction fnSort, voir les détails ici:
La meilleure option est de désactiver le tri et de simplement alimenter les données avec l'ordre de tri souhaité (depuis la base de données ou une autre source). Essayez d'ajouter ceci à votre "datatable": "bSort": false
J'ai eu ce problème également. J'avais utilisé l'option stateSave
et c'est ce qui a causé ce problème.
Supprimez cette option et le problème est résolu.
utilise this cela fonctionne pour moi: "order": [[1, "ASC"]],
Cela a fonctionné pour moi:
jQuery('#tblPaging').dataTable({
"sort": true,
"pageLength": 20
});
Il suffit d'inclure le code suivant:
$(document).ready(function() {
$('#tableID').DataTable( {
"order": [[ 3, "desc" ]]
} );
}
);
Article de référence complet avec l'exemple:
https://datatables.net/examples/basic_init/table_sorting.html
Datatables prend en charge les attributs HTML5 data- * pour cette fonctionnalité.
Il prend en charge plusieurs colonnes dans l'ordre de tri (basé sur 0)
<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>
Maintenant, mon jQuery est simplement $('table').DataTables();
et mes deuxième et troisième colonnes sont triées par ordre décroissant/ascendant.
Voici quelques autres attributs de Nice pour le <table>
que je réutilise moi-même:
data-page-length="-1"
définira la longueur de la page sur Tous (passez 25 pour la longueur de page 25) ...
data-fixed-header="true"
... Devinez