Bonjour ,
Voilà mon "problème", en fait je veux changer dynamiquement la couleur d'une cellule de ma dataTable en fonction de la valeur à l'intérieur.
Si c'est "No" -> rouge
Si c'est "Yes" -> vert
Voici le code de ma dataTable
Là où j'affiche Yes ou No , c'est pour validInf et validSup. Dans mon managed bean j'ai donc un bout de code qui d'une part me met la valeur qu'il faut (soit Yes soit No), d'autre part, initialise le style de la cellule.
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 <h:dataTable value="#{manageOccupation.dataList}" var="dataItem" border="3"> <h:column> <f:facet name="header"> <h:outputText value="Selected" /> </f:facet> <h:selectBooleanCheckbox value="#{dataItem.selected}" /> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Start" /> </f:facet> <h:outputText value="#{dataItem.occcupation.startDate}"> <f:convertDateTime pattern="dd/MM/yyyy" timeZone="Europe/Paris" /> </h:outputText> </h:column> <h:column> <f:facet name="header"> <h:outputText value="End" /> </f:facet> <h:outputText value="#{dataItem.occcupation.endDate}"> <f:convertDateTime pattern="dd/MM/yyyy" timeZone="Europe/Paris" /> </h:outputText> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Mode" /> </f:facet> <h:outputText value="#{dataItem.occcupation.dayMode}" /> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Type" /> </f:facet> <h:outputText value="#{dataItem.occcupation.name}" /> </h:column> <h:column> <f:facet name="header"> <h:outputText value="DaysTaken" /> </f:facet> <h:outputText value="#{dataItem.occcupation.daysTaken}" /> </h:column> <h:column> <f:facet name="header"> <h:outputText value="ValidInf" /> </f:facet> <h:outputText value="#{dataItem.validInf}" style="#{dataItem.colorInf}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="ValidSup" /> </f:facet> <h:outputText value="#{dataItem.validSup}" style="#{dataItem.colorSup}" /> </h:column> </h:dataTable>
Par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 if (occupation.isValidInf()) { validInf = "Yes"; colorInf = "width :100%; background-color: green"; } else { validInf = "No"; colorInf = "width:100%; background-color: red"; }
Le problème c'est qu'il n'y a que la largeur de mon texte qui est colorisé. J'aimerais que toute la cellule le soit. Je pensais pourtant que le "width:100%" règlerai mon problème mais il n'a pas l'air d'en prendre compte (si je ne le met pas, le résultat est identique)
Une idée?![]()
Partager