IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

[Richfaces] SetRendered et a4j:support


Sujet :

JSF Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 41
    Par défaut [Richfaces] SetRendered et a4j:support
    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?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 41
    Par défaut
    J'ai finalement trouvé la solution sur cette page:
    http://livedemo.exadel.com/richfaces...ajaxattributes

    Il s'agit du rendered qui pose problème. J'ai résolu le problème en ajoutant <a4j:outputPanel ajaxRendered="true"> sur mes 2 combobox.

    Je vais tenter de mettre en place une autre technique (expliqué dans le lien ci-dessus) car je ne veux pas rafraichir systématiquement tous mes composants à chaque évènement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/05/2013, 16h19
  2. Réponses: 11
    Dernier message: 08/03/2011, 14h23
  3. probléme avec <rich:comboBox et <a4j:support
    Par aymenroma dans le forum JSF
    Réponses: 5
    Dernier message: 10/06/2009, 15h02
  4. Probleme avec h:selectOneListbox et a4j:support
    Par yoskater dans le forum JSF
    Réponses: 14
    Dernier message: 20/02/2008, 11h56
  5. Problème avec <a4j:support/>
    Par romaintaz dans le forum JSF
    Réponses: 2
    Dernier message: 17/10/2007, 17h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo