Bonjour,
Je n'arrive pas à faire fonctionner SetRendered avec a4j:support.
Voici mon code:
et dans le bean:
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 <rich:extendedDataTable id="operateur" var="operateur" value="#{matelasCtrl.listeOperateurs}" width="100px" height="117px" selectionMode="single" binding="#{matelasCtrl.uiOperateur}" selectedClass="pep-table-select" styleClass="pep-table-operateur" selection="#{matelasModel.operateurSel}"> <a4j:support event="onRowClick" actionListener="#{matelasCtrl.selectionOperateur}" reRender="annee1,annee2" /> <rich:column sortable="false"> <f:facet name="header"> <h:outputText value="#{msg['libelle.annee']}"/> </f:facet> <h:commandLink action="#{matelasCtrl.selOpe}"><h:outputText value="#{operateur.id}"/></h:commandLink> <h:outputText value="#{operateur.libelle}" /> </rich:column> </rich:extendedDataTable> <rich:comboBox id="annee1" selectFirstOnUpdate="false" defaultLabel="#{msg['libelle.annee']}" width="60px" styleClass="pep-input-annee" value="#{matelasModel.annee1}" binding="#{matelasCtrl.uiAnnee1}" rendered="true"> <f:selectItems value="#{matelasCtrl.listeSaisieAnnee}" /> </rich:comboBox> <rich:comboBox id="annee2" selectFirstOnUpdate="false" defaultLabel="#{msg['libelle.annee']}" width="60px" styleClass="pep-input-annee" value="#{matelasModel.annee2}" binding="#{matelasCtrl.uiAnnee2}" rendered="false"> <f:selectItems value="#{matelasCtrl.listeSaisieAnnee}" /> </rich:comboBox>
Le code a été modifié pour mes tests.
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 public void selectionOperateur(ActionEvent event){ UIComponent comp = event.getComponent(); Object obj = comp.getParent(); if (obj instanceof HtmlExtendedDataTable) { HtmlExtendedDataTable table = (HtmlExtendedDataTable) obj; Object rowData = table.getRowData(); if (rowData instanceof OperateurBO) { char ope = ((OperateurBO) rowData).getId(); uiAnnee1.setRendered(true); uiAnnee1.setValue("TESTVAL"); uiAnnee2.setRendered(true); } } } public void selOpe() { uiAnnee2.setRendered(true); }
En résumé, il y a dans ma table un lien et un texte.
Le lien appelle la méthode selOpe() et réactualise toute ma mage, le SetRendered fonctionne bien.
Le texte passe par a4j:support et appelle la méthode selectionOperateur.
Le SetRendered ne fonctionne pas mais la valeur que je met dans le composant à afficher/masquer est bien affectée.
J'ai également testé une méthode alternative avec une propriété à l'attribut render que je gère du bean, ça ne marche pas non plus...
Quelqu'un aurait une idée?
Partager