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

Taglibs Java Discussion :

Comment changer la couleur du texte d'une colonne [DisplayTag]


Sujet :

Taglibs Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 70
    Points : 72
    Points
    72
    Par défaut Comment changer la couleur du texte d'une colonne
    Bonjour,
    Pour afficher une liste de données j'utilise displaytag, j'aurais souhaiter savoir s'il était possible de changer la couleur du texte d'une colonne en fonction de la valeur?
    Merci d'avance

  2. #2
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 58
    Points : 48
    Points
    48
    Par défaut
    Il faut que tu utilises les "Decorators" :
    http://displaytag.sourceforge.net/11...ecorators.html

    L'exemple est plus parlant, je me suis basé dessus:
    http://displaytag.homeip.net/display...e-rowclass.jsp

    source de la jsp avec l'utilisation du decorator:
    http://displaytag.homeip.net/display...ass.jsp.source

    Avec tout ca tu devrais t'en sortir sans probleme sinon fait signe :-)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 70
    Points : 72
    Points
    72
    Par défaut
    je n'ai pas la balise <jsp:scriptlet>

    Voici le code de ma jsp:
    <jsp:useBean id="templateForm" scope="session" class="form.ConsulterListTemplateForm"/>
    <c:if test="${!empty templateForm.lstTemplate}">
    <c:set scope="request" var="lstTemplate" value="${templateForm.lstTemplate}"/>
    <display:table name="lstTemplate" requestURI="consultationListTemplate.do" summary="Liste des models">

    <display:column property="name" title="Nom" href="saisieVisualiserTemplate.do" paramId="name" paramProperty="name"/>
    <display:column property="template_name" title="Hérite">
    <display:column property="command" title="Command" paramId="command" paramProperty="command"/>
    </display:table>
    </c:if>

    Ceci fonctionne mais je voudrais changer la couleur du texte suivant la valeur de command, l'idéal serait de pouvoir écrire quelque chose du type:
    <display:column title="Command">
    <c:out value="${command}">
    </display:column>

    mais je n'arrive pas à récupérer la valeur de command, une idée?

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 58
    Points : 48
    Points
    48
    Par défaut
    Le scriptlet contient la définition du decorator qui va retourner une valeur qui sera la valeur de la css à afficher.

    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
    <jsp:scriptlet>
           request.setAttribute("dyndecorator", new org.displaytag.decorator.TableDecorator()
           {
               public String addRowClass()
               {
                 String val = null;
                 if( ((servletGST.domaine.Contrat)getCurrentRowObject()).getEtatIncident() == 3 ){
                   val =  "incidentCritique";
                 }else if( ((servletGST.domaine.Contrat)getCurrentRowObject()).getEtatIncident() == 2){
                   val =  "incidentMajeur";
                 }else if( ((servletGST.domaine.Contrat)getCurrentRowObject()).getEtatIncident() == 4){
                   val =  "incidentMineur";
                 }else if( ((servletGST.domaine.Contrat)getCurrentRowObject()).getEtatIncident() == 1){
                   val =  "attenteValidation";
                 }
                 
                 return val;
               }
           });
    </jsp:scriptlet>
    Ensuite tu fais appel à ce decorator dans ton display tag:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <display:table name="listeContratsExpires" class="list" excludedParams="*" defaultsort="4" defaultorder="ascending" requestURI="gst?action=listerContratsExpires" id="listeContratsExpires" export="true" decorator="dyndecorator">
    <display:column property="num" href="gst?action=listerIncidents" paramId="idContrat" paramProperty="id" sortable="true" 
    	 	             title="N° de contrat" headerClass="sortable" class="statut"/>	
    ...
    </display:table>
    Voici ma css qui va reprendre la valeur retourner par le decorator:
    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
    tr.attenteValidation td.statut {
    	font-weight: bold;
    	background-color: green;
    }
    
    tr.incidentMineur td.statut {
    	font-weight: bold;
    	background-color: yellow;
    }
    
    tr.incidentMajeur td.statut {
    	font-weight: bold;
    	background-color: orange;
    }
    
    tr.incidentCritique td.statut {
    	font-weight: bold;
    	background-color: red;
    }

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 70
    Points : 72
    Points
    72
    Par défaut
    a quoi correspond "servletGST.domaine.Contrat" dans la balise <jsp:scriptlet>?

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 58
    Points : 48
    Points
    48
    Par défaut
    A mes packages, ca cest pour mon cas :-)

    package -> servletGST
    package -> domaine
    Classe -> Contrat

    Après je sais pas comment est organisé ton projet :-)

    En fait j'envoie "listeContratsExpires" qui est une ArrayList de type " Contrat"
    à mon displayTag, et donc sur chaque ligne de ma displayTag j'ai un contrat.

    La méthode du decorator getCurrentObject() recupère chaque objet de chaque ligne du displayTag que je cast en Contrat puisque cest des contrat :-) et je recupere la valeur que je veux tester sur cette objet contrat. Ici je recupere 'EtatIncident' et selon sa valeur (3,2,4,1) je retourne un 'val' spécifique (valeur css qui donnera ma couleur en fonction). Cest bon tu piges le systeme ? ou pas ? :-)

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 70
    Points : 72
    Points
    72
    Par défaut
    Ca marche merci beaucoup

  8. #8
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 58
    Points : 48
    Points
    48
    Par défaut
    de nada :-)

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    Bonjour à tous,

    Je profite de ce post pour demander s'il et possible de changer les couleurs de 2 colonnes en fonction de critères différents.
    Il faudrait qu'il y ait en quelque sorte 2 décorateurs ...
    Si quelqu'un a déjà fait ça je suis preneur !

    D'avance merci !

    Arnaud

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/03/2007, 22h20
  2. Changer la couleur du texte d'une Checkbox
    Par Masmeta dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/12/2006, 08h56
  3. Réponses: 3
    Dernier message: 28/02/2006, 15h39
  4. Comment changer la couleur de fond d'une ligne du TRichEdit
    Par tibi666 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 28/09/2005, 17h31
  5. Réponses: 2
    Dernier message: 03/02/2005, 23h42

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