J'utilise le plugin jQuery DataTables pour trier les champs de la table. Ma question est la suivante: comment désactiver le tri pour une colonne particulière? J'ai essayé avec le code suivant, mais cela n'a pas fonctionné:
"aoColumns": [
{ "bSearchable": false },
null
]
J'ai également essayé le code suivant:
"aoColumnDefs": [
{
"bSearchable": false,
"aTargets": [ 1 ]
}
]
mais cela n'a toujours pas produit les résultats escomptés.
Réponses:
Voici ce que vous recherchez:
la source
[-1]
, alors[1]
,[2]
etc? Qu'est-ce que cela-1
signifie? L'indexation des colonnes ne commence-t-elle pas à1
pour dataTables?-1
est l'index compté à partir de la fin de la table. (-1
est la dernière colonne du tableau)-De DataTables exemple - HTML5 Data- * attributs - Options de table
Ainsi, vous pouvez utiliser
data-orderable="false"
sur lath
colonne que vous ne voulez pas être triable. Par exemple, la deuxième colonne "Avatar" du tableau ci-dessous ne pourra pas être triée:Voir un exemple de travail sur https://jsfiddle.net/jhfrench/6yxvxt7L/ .
la source
Pour désactiver le tri de la première colonne, essayez avec le code ci-dessous dans datatables jquery. Le null représente l'activation de tri ici.
Désactiver le tri sur une colonne dans les tables de données jQuery
la source
Utilisation de Datatables 1.9.4 J'ai désactivé le tri pour la première colonne avec ce code:
ÉDITER:
Vous pouvez désactiver même en utilisant la
no-sort
classe sur votre<th>
,et utilisez ce code d'initialisation:
MODIFIER 2
Dans cet exemple, j'utilise Datables avec Bootstrap, à la suite d'un ancien article de blog. Il existe maintenant un lien avec du matériel mis à jour sur le style des tables de données avec bootstrap .
la source
Ce que j'utilise, c'est simplement ajouter un attribut personnalisé dans la tête td et contrôler le tri en vérifiant automatiquement cette valeur attr.
Ainsi, le code HTML sera
Et JavaScript pour l'initialisation des tables de données sera (il obtiendra dynamiquement les informations de tri de la table elle-même;)
la source
data-bSortable
place debSortable
.bSortable
n'est pas un attribut HTML valide.columnDefs
accepte maintenant une classe. Je dirais que c'est la méthode préférée si vous souhaitez spécifier des colonnes à désactiver dans votre balisage:Ensuite, dans votre JS:
la source
Voici ce que vous pouvez utiliser pour désactiver certaines colonnes à désactiver:
Il ne vous reste plus qu'à ajouter le "orderable": false à la colonne dont vous ne voulez pas être triable.
la source
la source
"bSortable": false, "aTargets": [0]
Pour désactiver le tri de colonne unique, essayez cet exemple:
Pour plusieurs colonnes, essayez cet exemple: il vous suffit d'ajouter le numéro de colonne. Par défaut, il commence à 0
Ici ne
Column 3
fonctionne quela source
À partir de la version 1.10.5 , incluez simplement
dans columnDefs et ciblez votre colonne avec
La table devrait aimer:
la source
Si vous définissez la
orderable
propriété FIRST column sur false, vous devez également définir laorder
colonne par défaut , sinon cela ne fonctionnera pas car la première colonne est la colonne de classement par défaut. L'exemple ci-dessous désactive le tri sur la première colonne mais définit la deuxième colonne comme colonne d'ordre par défaut (rappelez-vous que les index de dataTables sont basés sur zéro).la source
Voici
0
l'index de la colonne, si vous souhaitez que plusieurs colonnes ne soient pas triées, mentionnez les valeurs d'index de colonne séparées parcomma(,)
la source
Pour mettre à jour la réponse de Bhavish (qui, je pense, est pour une ancienne version de DataTables et n'a pas fonctionné pour moi). Je pense qu'ils ont changé le nom de l'attribut. Essaye ça:
la source
data-orderable
... voir stackoverflow.com/a/32281113/1430996 .data-sortable
fonctionne également, mais je ne peux pas trouver où il est documenté.Utilisation de la classe:
la source
Cela fonctionne pour moi pour une seule colonne
la source
Si vous devez déjà masquer certaines colonnes, comme je cache la colonne du nom de famille. Je devais juste concaténer fname, lname, donc j'ai fait une requête mais cache cette colonne du front-end. Les modifications dans Désactiver le tri dans une telle situation sont:
Notez que j'avais la fonctionnalité de masquage ici
Puis je l'ai fusionné en
"aoColumnDefs"
la source
Utilisez le code suivant pour désactiver la commande sur la première colonne:
Pour désactiver la commande par défaut, vous pouvez également utiliser:
la source
Vous pouvez utiliser directement la méthode .notsortable () sur la colonne
la source
Il y a deux façons, l'une est définie en html lorsque vous définissez les en-têtes de tableau
Une autre façon est d'utiliser javascript, par exemple, vous avez une table
puis,
la source
vous pouvez également utiliser un index négatif comme ceci:
la source
Le code ressemblera à ceci:
la source
Voici la réponse!
targets
est le numéro de colonne, il commence à 0la source
définir la classe "no-sort" dans le tableau puis ajouter css .no-sort {événements-pointeurs: aucun! important; curseur: par défaut! important; image de fond: aucun! important; } par cela, il masquera la flèche vers le bas et désactivera l'événement dans la tête.
la source