IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Angular Discussion :

Cacher une colonne avec ngx-datatable


Sujet :

Angular

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 6
    Points : 8
    Points
    8
    Par défaut Cacher une colonne avec ngx-datatable
    Bonjour à tous,

    Je suis nouveau sur angular et je cherche à manipuler des tableaux de données pouvant être modifiable.
    Notamment, je cherche à créer une colonne ID qui ne serait jamais affichée sur ma page mais serait disponible sur mon code pour me permettre de manipuler plus facilement mes données.
    J'ai essayé ce code qui permet en sélectionnant une checkbox de dissimuler une colonne comme sur cet exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    import { Component } from '@angular/core';
     
    @Component({
      selector: 'column-hidden',
      template: `
          <div style='float:left;width:75%'>
            <ngx-datatable
              class='material'
              [rows]='rows'
              [columnMode]="'force'"
              [headerHeight]="50"
              [footerHeight]="50"
              [rowHeight]="'auto'">
              <ngx-datatable-column 
                *ngFor="let col of columns" 
                [name]="col.name">
              </ngx-datatable-column>
            </ngx-datatable>
          </div>
          <div class='selected-column'>
            <h4>Available Columns</h4>
            <ul>
              <li *ngFor='let col of allColumns'>
                <input
                  type='checkbox'
                  [id]="col.name"
                  (click)='toggle(col)'
                  [checked]='isChecked(col)'
                />
                <label [attr.for]="col.name">{{col.name}}</label>
              </li>
            </ul>
          </div>
      `
    })
    export class ColumnToggleComponent {
     
      rows = [
        {
          name: 'Claudine Neal',
          gender: 'female',
          company: 'Sealoud'
        },
        {
          name: 'Beryl Rice',
          gender: 'female',
          company: 'Velity'
        }
      ];
     
      columns = [
        { name: 'Name' },
        { name: 'Gender' },
        { name: 'Company' }
      ];
     
      allColumns = [
        { name: 'Name' },
        { name: 'Gender' },
        { name: 'Company' }
      ];
     
      toggle(col) {
        const isChecked = this.isChecked(col);
     
        if(isChecked) {
          this.columns = this.columns.filter(c => { 
            return c.name !== col.name; 
          });
        } else {
          this.columns = [...this.columns, col];
        }
      }
     
      isChecked(col) {
        return this.columns.find(c => {
          return c.name === col.name;
        });
      }
     
    }
    Mais je n'arrive pas à modifier ce code pour par exemple laisser cacher la colonne name tout le temps sans faire apparaître la checkbox...

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    765
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 765
    Points : 1 036
    Points
    1 036
    Par défaut
    Bonjour,

    C'est l'exemple de base du site ngx datatable.

    Le code est ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <li *ngFor='let col of allColumns'>
                <input
                  type='checkbox'
                  [id]="col.name"
                  (click)='toggle(col)'
                  [checked]='isChecked(col)'
                />
                <label [attr.for]="col.name">{{col.name}}</label>
              </li>

    La solution :

    Dans la boucle ngFor tu peux conditionner la balise input avec un ngIf qui va tester le nom de la colonne et ne pas l'afficher si elle s'appelle 'name'.

Discussions similaires

  1. Cacher une colonne avec excel 2007
    Par Saridro dans le forum Excel
    Réponses: 2
    Dernier message: 05/01/2009, 17h49
  2. Cacher une colonne datatable
    Par chouchouca dans le forum ASP.NET
    Réponses: 2
    Dernier message: 03/12/2008, 11h59
  3. Réponses: 2
    Dernier message: 29/09/2008, 09h44
  4. Renommer une colonne avec ALTER TABLE...
    Par David.V dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/07/2004, 10h33
  5. [C#] Cacher une colonne d'une dataGrid
    Par royrremi dans le forum ASP.NET
    Réponses: 2
    Dernier message: 27/05/2004, 16h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo