web-dev-qa-db-fra.com

Masquer les colonnes dans la table d'amorçage au démarrage

J'ai le tableau suivant, où j'utilise Bootstrap-table

<div class="row mystyle" >
    <div class="col-md-12">
        <table id="mytable"  data-row-style="rowStyle" class="table table-hover" id="table-pagination " 
               data-url="labels.json" 
               data-toggle="table"
               data-pagination="true"
               data-show-pagination-switch="true"
               data-sort-order="desc" 
               data-search="true"
               data-show-refresh="true" 
               data-show-columns="true"
               data-page-list="[10, 25, 50, 100, ALL]"                     
               >

            <thead>
                <tr>
                    <th data-field="customer.name" data-align="center" data-sortable="true">customer</th>
                    <th data-field="type" data-align="center" data-sortable="true">type</th>
                    <th data-field="description" data-align="center" data-sortable="true">description</th>
                    <th data-field="cutter" data-align="center" data-sortable="true">cutter</th> 
                    <th data-field="valid_s" data-align="center" data-sortable="true">valid</th>
                </tr>
            </thead>
        </table>
    </div>            
</div>

Existe-t-il un moyen de définir quelles colonnes seront masquées au démarrage? Par exemple, je souhaite afficher uniquement les colonnes customer et description.

6
yaylitzis

Vous pouvez utiliser data-visible = "false", c’est facile pour vous.

<thead>
    <tr>
        <th data-field="customer.name" data-align="center" data-sortable="true">customer</th>
        <th data-field="type" data-align="center" data-sortable="true" data-visible="false">type</th>
        <th data-field="description" data-align="center" data-sortable="true">description</th>
        <th data-field="cutter" data-align="center" data-sortable="true" data-visible="false">cutter</th>
        <th data-field="valid_s" data-align="center" data-sortable="true" data-visible="false">valid</th>
    </tr>
</thead>
3
lvwzhen

Vous pouvez le faire dans votre js en utilisant hideColumn dans la fonction ready:

$(function(){
    var $table = $('#mytable');

    $table.bootstrapTable('hideColumn', 'type');
    $table.bootstrapTable('hideColumn', 'cutter');
    $table.bootstrapTable('hideColumn', 'valid_s');
});

Ensuite, si vous voulez leur montrer, vous pouvez utiliser:

$(function(){
    var $table = $('#mytable');

    $table.bootstrapTable('showColumn', 'type');
    $table.bootstrapTable('showColumn', 'cutter');
    $table.bootstrapTable('showColumn', 'valid_s');
});

J'espère que cela t'aides.

9
Zakaria Acharki

Aucune des réponses ci-dessus n'a fonctionné pour moi, car elles ont supprimé la colonne du DOM - mais je devais la conserver dans le DOM. Je voulais seulement cacher la colonne.

Les solutions suivantes ont fonctionné pour garder la colonne masquée mais dans le DOM:

Bootstrap-Table: Comment cacher une colonne sans la supprimer du DOM?

ex. en utilisant l'attribut data-class sur le TH, puis en le définissant comme étant masqué:

<th class="col-xs-1" data-class='hidden' data-field="stargazers_count">Stars</th>

.hidden{
  display:none;
  visibility:hidden;
}

Une autre option consiste à masquer manuellement le TD/TH dans jQuery après la fonction onPostBody() de Bootstrap-Table.

2
gene b.

Vous devez ajouter la dernière ligne

<table id="mytable"  data-row-style="rowStyle" class="table table-hover" id="table-pagination " 
       data-url="labels.json" 
       data-toggle="table"
       data-pagination="true"
       data-show-pagination-switch="true"
       data-sort-order="desc" 
       data-search="true"
       data-show-refresh="true" 
       data-show-columns="true"
       data-page-list="[10, 25, 50, 100, ALL]"  
       showPaginationSwitch="false"        
       >
0
Sergio Araque