jQuery/ datables: supprimer les flèches de tri

j'utilise le jQuery DataTables plugin.

y a-t-il un moyen de me débarrasser des petites flèches qu'ils affichent dans les en-têtes pour indiquer les options de tri ? Je voudrais garder la fonctionnalité qu'en cliquant sur un en-tête il trie par cette colonne, Je ne veux juste pas afficher les icônes de flèche car ils changent la disposition de mes en-têtes de colonne.

Firebugg montre mes en-têtes comme suit:

<th class="sorting" role="columnheader" tabindex="0" aria-controls="myTable" rowspan="1" colspan="1" style="width: 151px;" aria-label="Category: activate to sort column ascending">Category</th>

Merci beaucoup pour votre aide, Tim.

24
demandé sur davidkonrad 2013-11-25 19:08:29

22 réponses

les icônes sont définies comme background : url(..) sur les classes CSS. Les désactiver par:

.sorting, .sorting_asc, .sorting_desc {
    background : none;
}

voir jsfiddle - > http://jsfiddle.net/5V2Dx / Note : Cette solution est pour les tableaux de données 1.9.x!!


mise à jour . Lors de l'utilisation des données 1.10.x, le CSS pour la réinitialisation des icônes d'en-tête est un peu différent :

table.dataTable thead .sorting, 
table.dataTable thead .sorting_asc, 
table.dataTable thead .sorting_desc {
    background : none;
}

voir - > http://jsfiddle.net/kqpv3ub9 / (la démo mise à jour utilise des dataTables) 1.10.11 )

36
répondu davidkonrad 2016-05-12 17:05:57

aucune des solutions présentées n'a fonctionné pour moi. Mais je viens de trouver celui-ci;

.dataTable > thead > tr > th[class*="sort"]:after{
    content: "" !important;
}

PS.: Version "datatables": "~1.10.2"

21
répondu Renato Gama 2014-10-02 00:26:35

pour la nouvelle version des données:

<style>
     .dataTable > thead > tr > th[class*="sort"]::after{display: none}
</style>
5
répondu Irshad Khan 2015-01-27 08:09:17

les flèches ont certaines classes qui leur sont associées. Vous pouvez utiliser les CSS suivants pour cacher ces éléments.

table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after {
    display: none;
}
4
répondu Edgar Couto 2015-09-12 17:36:19

vous pouvez utiliser les propriétés de données comme ci-dessous, il masquera l'icône de tri d'après les colonnes pouvant servir de données:

"targets": 'no-sort',
"bSort": false,
"order": []
4
répondu Ankita_systematix 2018-05-14 08:00:55

utilisant CSS:

.DataTables_sort_icon { display:none;}
2
répondu A. Wolff 2013-11-25 15:10:09

C'est ce qui a fonctionné pour moi

.dataTable > thead > tr > th[class*=sort]:after{
    display:none;
}
2
répondu Bakly 2016-09-29 15:47:22

exemple:

<display:column property="......" title="......" sortable="true"/>

cela rendra la colonne sortable sans afficher les flèches.

1
répondu aseesh 2014-12-23 12:27:19

tout cela semble un peu compliqué pourquoi ne pas utiliser l'attribut data-sortable="false" sur la balise <th> et puis juste faire un removeAttribute("class"); dans JS avec un déclencheur click ?

1
répondu BeNice 2016-09-17 16:24:50

sur la dernière version de datatables / CDN il est de nouveau différent

table.dataTable thead .sorting:after
{
    display: none;
}

cache les filtres.

concerne

1
répondu Nicky Thomas 2017-10-03 13:59:19

(depuis DataTables 1.10 ) si vous n'en avez pas besoin, désactiver la commande est une façon d'empêcher les commandes de flèches d'apparaître. Faites ceci lors de l'initialisation de la table en spécifiant l'option "ordering" comme false .

exemple :

$("#example").DataTable({
   "ordering": false
});

JSFiddle

de la Documentation:

activer ou désactiver l'ordre des colonnes - c'est aussi simple que cela!

avertissement: pas de tri du tout.

une autre solution consiste à désactiver l'ordre dans toutes les colonnes. Ensuite, vous pouvez configurer la commande de manière programmatique avec la ou les flèches de commande uniquement en affichant sur tried colonne (s) :

var after = $('#after').DataTable({
  "order": [[1,"asc"]],                       // sorting 2nd column
  "columnDefs": [
    { "orderable": false, "targets": "_all" } // Applies the option to all columns
  ]
});

JSFiddle

1
répondu Logan Hoerth 2017-12-06 07:56:59

truc rapide (cela cache un bouton de tri, mais la fonction fonctionne toujours): - Créer CSS:

.no-sort::after { display: none!important; }

.no-sort { pointer-events: none!important; cursor: default!important; }
  • puis ajoutez ceci dans un en-tête de votre table:

<th class="no-sort">Heading</th>

de toute façon, voici la réponse longue, vous pouvez utiliser ce morceau de code pour désactiver la fonction de tri de la colonne particulière (base-idx: 0), ainsi que supprimer un bouton de tri:

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

mais cela ne fonctionnera pas parfaitement si vous mettez orderable comme false dans la première colonne. La fonction de tri s'arrête, mais le bouton est toujours là. Parce que, par défaut, la première colonne a été définie à l'ordre ascendant ('order': [0, 'asc' ]). Pour désactiver ce défaut "gênant", ajouter une option supplémentaire: "order":

$('#example').dataTable( {
      "columnDefs": [
        { "orderable": false, "targets": 0 }
      ],
      "order": [],  // not set any order rule for any column.
});
1
répondu Nguyen Tan Dat 2018-05-30 10:17:57

Pour DataTables 1.10.7 une petite variante pour davidkonrad de style css:

table.dataTable thead th.sorting, 
table.dataTable thead th.sorting_asc, 
table.dataTable thead th.sorting_desc {
    background : none;
}

comprend l'élément" th".

0
répondu Cristian A. Rodríguez Enríquez 2017-05-23 12:26:15

cela vous permettra de changer les icônes de tri par défaut pour les icônes personnalisées, que j'ai dérivé du post D'Irshad ci-dessus et du post de Suschil de ici . Nous avons dû le faire à cause des navigateurs dont la police de caractères était désactivée, ce qui était hors de notre contrôle.

.dataTable > thead > tr > th[class*="sort"]::after{display: none}

table.dataTable thead .sorting { background: url('/Content/images/sort-both.png') no-repeat center right; }
table.dataTable thead .sorting_asc { background: url('/Content/images/sort-asc-list.png') no-repeat center right; }
table.tabledataTable thead .sorting_desc { background: url('/Content/images/sort-desc-list.png') no-repeat center right; }
0
répondu ScottLenart 2017-05-23 12:18:07

dans mon cas, ça a bien marché.

.sorting:after,
.sorting_asc:after,
.sorting_desc:after{
    content: "";
    background: none !important;
}
0
répondu KBIIX 2016-06-16 00:48:35

ça a marché pour moi.

 #sample_1>thead>tr>th.sorting, #sample_1>thead>tr>th.sorting_asc, #sample_1>thead>tr>th.sorting_desc {
        background : none;

    }
    #sample_1>thead>tr>th.sorting:after, #sample_1>thead>tr>th.sorting_asc:after, #sample_1>thead>tr>th.sorting_desc::after {
        content: none; 
    }
0
répondu Shahid Chaudhary 2016-11-18 08:19:31

classes CSS sorting_asc et sorting_desc apporte de l'icône.

la solution la plus facile pour localiser la correction pour une table spécifique est, une fois que la table est initialisée, dans fnInitComplete, de faire ce qui suit:

$(TABLE).find("thead th").removeClass("sorting_asc");

0
répondu user2310848 2017-04-20 14:04:14
$('#sample_1 thead tr th:first-child').removeClass('sorting');
0
répondu Sagar Mali 2017-09-08 06:47:32

mis sous CSS. Il masquera seulement l'icône, cependant le tri fonctionnera.

table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled {
  background-image: none!important;
}
0
répondu ruchit07 2017-09-28 05:25:25

ajouter ce style à votre page ""

table.dataTable thead .sorting::after {
    opacity: 0.2;
    content: "";
}
0
répondu Clinton Agburum 2017-11-20 11:33:00

vous pouvez en fait supprimer les images d'icône aussi bien( au lieu d'ajouter de nouveaux CSS), dans le dossier:

DataTables-1.10.16\images

enter image description here

0
répondu GMsoF 2017-12-15 07:39:45

il y a une autre solution pour cacher les icônes de tri d'une colonne, Appliquer une classe css à l'en-tête disons,

<th class="sorting_disabled"></th>

et définir la classe css dans le style

.sorting_disabled
{
   background-image:none !important;
}

cette solution a fonctionné et testé pour jquery datable version 1.10+

0
répondu Tahir Alvi 2018-02-08 08:18:12