Bonjour,

Je n'arrive pas à faire fonctionner SetRendered avec a4j:support.

Voici mon code:

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>
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
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);
 
	}
Le code a été modifié pour mes tests.
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?