Bonjour à vous,
J'ai un problème assez étrange à vous soumettre et je dois avouer que je ne comprends pas du tout ce comportement.
Je possède un tableau avec une colonne comprenant des checkBox. Jusque là, tout va bien
J'ai un menu déroulant permettant d'effectuer diverses selections sur mon tableau (selectionner tous, aucun, juste les absences, etc)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 </rich:column> <rich:column width="15px" styleClass="#{liste.styleClass}" style="text-align:center"> <a4j:outputPanel id="refreshCheckBox" ajaxRendered="true"> <h:selectBooleanCheckbox value="#{liste.selected}" id="chk_rh" /> </a4j:outputPanel> </rich:column>
Voici le code de la fonction SelectAll :
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 <rich:toolBarGroup> <rich:dropDownMenu> <f:facet name="label"> <h:panelGroup> <h:graphicImage id="selectAll" url="images/select.gif" /> <h:outputText value="#{langRh.selectAll}" /> </h:panelGroup> </f:facet> <rich:menuItem submitMode="ajax" value="#{langRh.menuitem_cras}" action="#{rhBean.selectAllCra}" reRender="refreshCheckBox" /> <rich:menuItem submitMode="ajax" value="#{langRh.menuitem_absences}" action="#{rhBean.selectAllAbsences}" reRender="refreshCheckBox" /> <rich:menuItem submitMode="ajax" value="#{langRh.menuitem_all}" action="#{rhBean.selectAll}" reRender="refreshCheckBox" /> <rich:menuItem submitMode="ajax" value="#{langRh.menuitem_nothing}" action="#{rhBean.deselectAll}" reRender="refreshCheckBox" /> </rich:dropDownMenu> </rich:toolBarGroup>
Je récupere les objets présents dans mon tableau et assigne la valeur selected (qui est celle des checkbox) qui va bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 /** * Selectionne toutes les lignes du tableau */ public void selectAll() { for (ElementAValiderDTO e : maListElAValider) { if(!e.isSelected()){ e.setSelected(true); } } }
Ceci marche impécable, j'ai les réactions voulu.
Seulement, ça marche beaucoup moins bien à partir du moment ou j'ai déjà une case de selectionnée avant d'effectuer une des actions de mon DropMenu.
Quand j'effectue une action selectAll par exemple, les assignements des attributs "selected" se font correctement mais les checkbox de mon tableau reste dans leur état de départ (elle ne se coche ou décoche pas).
Le plus étrange dans tout ca, c'est que les objets ont bien leur nouvelle valeur de selected mais que l'affichage des checkboxs du tableau est mauvais (alors que ça marche très bien sans cocher de case au départ)
Voilà, vous avez une idée d'ou ça pourrait venir ?
Merci d'avance.
Partager