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

JSF Java Discussion :

[Datatable] Style conditionnel sur une ligne


Sujet :

JSF Java

  1. #1
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Points : 6 301
    Points
    6 301
    Par défaut [Datatable] Style conditionnel sur une ligne
    Bonjour,

    j'aimerai savoir s'il est possible d'affecter un style Css à une ligne, mais selon une condition.

    Soit simple :
    Ligne 2x = classe 1
    ligne 2x+1 = classe 2

    Soit plus compliqué :

    Si "champ Y de la ligne vaut Z" alors style = classe 3


    Est-ce possible ? Directement ou via des composants propre ?

    Merci d'avance
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour.
    A priori, oui c'est possible, mais en passant par les colonnes : appliquer le même styles aux colonnes d'une ligne.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <h:dataTable value="#{}" var="row">
      <h:column styleClass="#{(row.age<18?'redStyle':'greenStyle')}">
        ....
      </h:column>
     
      <h:column styleClass="#{(row.age<18?'redStyle':'greenStyle')}">
        ....
      </h:column>
    </h:dataTable>
    Voilou : le tout est dans l'utilisation de l'opérateur tertiaire (condition?résultat si vrai:résultat si faux).

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    la solution de djo fonctionne très bien.
    Petit complément, il est même possible de faire plus complexe en appelant une méthode du bean avec des arguments comme condition d'affichage.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h:column styleClass="#{(personBean.verifierAge(row)?'redStyle':'greenStyle')}">
    avec la méthode au niveau du bean
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public boolean verifierAge(Person pers) {
            return pers.getAge() < 18 || !pers.isMembreDeveloppezNet();
    }
    Matthieu

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/05/2012, 19h09
  2. Réponses: 5
    Dernier message: 12/08/2009, 15h59
  3. Afficher un datatable sur une ligne
    Par Sebeee dans le forum JSF
    Réponses: 2
    Dernier message: 19/09/2006, 11h07
  4. Lien sur une ligne de tableau
    Par Oluha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/02/2005, 11h36
  5. pointer sur une ligne d'un TStringGrid
    Par jeannot27 dans le forum C++Builder
    Réponses: 7
    Dernier message: 20/10/2004, 10h56

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