Comment puis-je supprimer la barre de recherche et le pied de page ajoutés par le plugin jQuery DataTables?

253

J'utilise jQuery DataTables .

Je souhaite supprimer la barre de recherche et le pied de page (indiquant le nombre de lignes visibles) qui sont ajoutés au tableau par défaut. Je veux juste utiliser ce plugin pour le tri, en gros. Cela peut-il être fait?

leora
la source
Vous pouvez utiliser efficacement sDomcomme décrit ici - stackoverflow.com/a/53885264/5729813
Tushar Walzade

Réponses:

487

Pour DataTables> = 1.10 , utilisez:

$('table').dataTable({searching: false, paging: false, info: false});

Pour DataTables <1.10 , utilisez:

$('table').dataTable({bFilter: false, bInfo: false});

ou en utilisant du CSS pur:

.dataTables_filter, .dataTables_info { display: none; }
patte
la source
7
Aussi bon que le commentaire @antpaw est, et semble fonctionner dans la plupart des cas, il ne fonctionne pas s'il y a un filtrage en cours pour chaque colonne, comme dans cet exemple: datatables.net/release-datatables/extras/FixedColumns/… . Être conscient!
Janis Peisenieks
@JanisPeisenieks L'URL d'exemple est cassée: datatables.net/extensions/fixedcolumns
antpaw
7
Je ne comprends pas pourquoi cela est accepté, car cela ne répond pas à la question. Le problème résidait dans la suppression de la barre de recherche et du pied de page, sans désactiver complètement la recherche.
user1563544
pour supprimer complètement le pied de page, vous devez définir paging:falseet info:falsepas seulementpaging:false
Mike D3ViD Tyson
1
en ajoutant au commentaire de @ user1563544, existe-t-il un moyen de masquer simplement la barre de recherche et de NE PAS désactiver la fonctionnalité? (autres que les astuces CSS?)
vignz.pie
88

Consultez http://www.datatables.net/examples/basic_init/filter_only.html pour une liste des fonctionnalités à afficher / masquer.

Ce que vous voulez, c'est définir "bFilter" et "bInfo" sur false;

$(document).ready(function() {
    $('#example').dataTable( {
        "bPaginate": false,
        "bFilter": false,
        "bInfo": false
                 } );
} );
Eric
la source
@Eric merci de travailler pour moi, mais je veux montrer "bPaginate" seulement je ne veux pas montrer "binfo" comment je peux implémenter si j'ai fait "bInfo" = false et "bPaginate" = true alors les deux sont affichés
2017
Dans la dernière version de DataTables est juste{paging: false, info: false}
josemmo
42

Vous ne pouvez pas non plus dessiner l'en-tête ou le pied de page en définissant sDom: http://datatables.net/usage/options#sDom

'sDom': 't' 

affichera JUSTE la table, pas d'en-têtes ou de pieds de page ou quoi que ce soit.

Il en est question ici: http://www.datatables.net/forums/discussion/2722/how-to-hide-empty-header-and-footer/p1

Scott Stafford
la source
2
Cela devrait être ajouté à la réponse d'Antpaw. Cela masque affectivement le filtre et les divs d'espace réservé d'informations restant lors du passage de "bFilter": false, "bInfo": false.
tibc-dev
Cela supprime la pagination dans le pied de page. Je ne pense pas que ce soit une bonne pratique.
Anirudh
1
Il s'appelle maintenant «dom» et vous pouvez contrôler beaucoup plus avec cette option. Voir datatables.net/reference/option/dom
unkreativ
1
C'est en fait la bonne réponse. Les autres réponses impliquant des ajustements CSS et JS sont toutes des hacks. Si vous souhaitez utiliser correctement DataTables, voici comment procéder. Par exemple, si vous souhaitez afficher tous les morceaux (pagination, longueur de page, etc.) à l'exception de la zone de recherche, vous ajouteriez une dompropriété avec une valeur de ltiprvoir datatables.net/reference/option/dom
onefootswill
26

Si vous utilisez un filtre personnalisé, vous souhaiterez peut-être masquer la zone de recherche, mais vous souhaiterez toujours activer la fonction de filtrage, ce bFilter: falsen'est pas le cas. Utilisez à la dom: 'lrtp'place, la valeur par défaut est 'lfrtip'. Documentation: https://datatables.net/reference/option/dom

sulaiman sudirman
la source
10
var table = $("#datatable").DataTable({
   "paging": false,
   "ordering": false,
   "searching": false
});
Pietro La Grotta
la source
7

Un moyen rapide et sale est de trouver la classe du pied de page et de la masquer à l'aide de jQuery ou CSS:

$(".dataTables_info").hide();
kgiannakakis
la source
4

si vous utilisez le rouleau:

.dataTables_wrapper .fg-toolbar { display: none; }
paja01
la source
+1 Merci, cela m'a orienté dans la bonne direction. Je ne voulais pas masquer l'en-tête aussi, donc je voulais juste le pied de page. Les classes ui-corner-bl et ui-corner-br ne sont appliquées qu'au pied de page, j'ai donc utilisé l'une ou l'autre pour obtenir l'encapsuleur de pied de page ........ $ (". ui-corner-bl"). hide ( );
Kevbo
4

Comme l'a dit @Scott Stafford sDOMest la propriété la plus appropriée pour afficher, masquer ou déplacer les éléments qui composent les DataTables. Je pense que le sDOMest désormais obsolète, avec le correctif réel que cette propriété est maintenant dom.

Cette propriété permet également de définir une classe ou un identifiant pour un élément, afin que vous puissiez styler plus facilement.

Consultez la documentation officielle ici: https://datatables.net/reference/option/dom

Cet exemple n'afficherait que le tableau:

$('#myTable').DataTable({
    "dom": 't'
});
Grirg
la source
3

Ici, vous pouvez ajouter un sDomélément à votre code, la barre de recherche supérieure est masquée.

$(document).ready(function() {
    $('#example').dataTable( {
"sDom": '<"top">rt<"bottom"flp><"clear">'
 } );
} );
venky
la source
3

Cela peut être fait en changeant simplement la configuration:

$('table').dataTable({
      paging: false, 
      info: false
 });

Mais pour cacher le pied de page vide; ce morceau de code fait l'affaire:

 $('table').dataTable({
      paging: false, 
      info: false,

      //add these config to remove empty header
      "bJQueryUI": true,
      "sDom": 'lfrtip'

});
Shayan Sulehri
la source
2

Juste un rappel que vous ne pouvez pas initialiser deux fois DataTablele même <table>élément.

Si vous rencontrez le même problème, vous pouvez définir searchinget pagingfalse lors de l'initialisation de DataTable sur votre HTML <table>comme ceci

 $('#tbl').DataTable({
    searching: false, 
    paging: false,
    dom: 'Bfrtip',
    buttons: [
       'copy', 'csv', 'excel', 'pdf', 'print'
    ]
 });
Hitesh Sahu
la source
1

Vous pouvez les masquer via css:

#example_info, #example_filter{display: none}
graphiquedivine
la source
Pas «mal», simplement différent. Cela dépend si vous souhaitez masquer toutes les instances (par classe, comme dans votre réponse), ou une instance particulière (par ID, comme dans la mienne).
graphicdivine
1

Vous pouvez utiliser l'attribut sDom. Le code ressemble à ceci.

$(document).ready(function() {
    $('#example').dataTable( {
        'sDom': '"top"i'
                 } );
} );

Il cache la boîte de recherche et de pager.

Justget Meinside
la source
1

Depuis DataTables 1.10.5, il est désormais possible de définir des options d'initialisation à l'aide d'attributs HTML5 data- *.

- documentation dataTables: attributs HTML5 data- * - options de table

Vous pouvez donc spécifier data-searching="false" data-paging="false" data-info="false"sur le table. Par exemple, ce tableau ne permettra pas de rechercher, d'appliquer la pagination ou d'afficher le bloc d'informations:

<table id="example" class="display" width="100%" data-searching="false" data-paging="false" data-info="false">
    <thead>
        <tr>
            <th>Name</th>
            <th data-orderable="false">Avatar</th>
            <th>Start date</th>
            <th>Salary</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Tiger Nixon</td>
            <td><img src="https://www.gravatar.com/avatar/8edcff60cdcca2ad650758fa524d4990?s=64&amp;d=identicon&amp;r=PG" alt="" style="width: 64px; height: 64px; visibility: visible;"></td>
            <td>2011/04/25</td>
            <td>$320,800</td>
        </tr>
        <tr>
            <td>Garrett Winters</td>
            <td><img src="https://www.gravatar.com/avatar/98fe9834dcca2ad650758fa524d4990?s=64&amp;d=identicon&amp;r=PG" alt="" style="width: 64px; height: 64px; visibility: visible;"></td>
            <td>2011/07/25</td>
            <td>$170,750</td>
        </tr>
        ...[ETC]...
    </tbody>
</table>

Voir un exemple de travail sur https://jsfiddle.net/jhfrench/17v94f2s/ .

L'avantage de cette approche est qu'elle vous permet d'avoir un appel dataTables standard (c'est-à-dire $('table.apply_dataTables').DataTable()) tout en étant capable de configurer les options dataTables table par table.

Jeromy French
la source
0

J'ai fait cela en attribuant un identifiant au pied de page, puis en utilisant le style CSS:

    <table border="1" class="dataTable" id="dataTable_${dtoItem.key}" >
     <thead>
        <tr>
            <th></th>

        </tr>
    </thead>
 <tfoot>
    <tr>
            <th id="FooterHidden"></th>
    </tr>
</tfoot>
<tbody>

    <tr>

                <td class="copyableField"></td>

    </tr>
 </tbody>
</table>

puis styling en utilisant css:

#FooterHidden{
   display: none;
}

Comme mentionné ci-dessus, les moyens ne fonctionnent pas pour moi.

newProgramer
la source
0

Je pense que la manière la plus simple est:

<th data-searchable="false">Column</th>

Vous pouvez modifier uniquement le tableau que vous devez modifier, sans changer le CSS ou le JS communs.

WalterV
la source
0

Si vous souhaitez uniquement masquer le formulaire de recherche, par exemple, parce que vous avez des filtres d'entrée de colonne ou peut-être parce que vous avez déjà un formulaire de recherche CMS capable de renvoyer les résultats du tableau, il vous suffit d'inspecter le formulaire et d'obtenir son identifiant - (au moment de la rédaction de ce document, il ressemble à cela [tableid]-table_filter.dataTables_filter). Ensuite, [tableid]-table_filter.dataTables_filter{display:none;}conservez simplement toutes les autres fonctionnalités des tables de données.

Herbert Kimani
la source