[Richfaces] SetRendered et a4j:support
Bonjour,
Je n'arrive pas à faire fonctionner SetRendered avec a4j:support.
Voici mon code:
Code:
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:
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?