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 :

probleme a4j:commandLink et affichage d'un datatable


Sujet :

JSF Java

  1. #1
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 686
    Points : 118
    Points
    118
    Par défaut probleme a4j:commandLink et affichage d'un datatable
    salut
    j'ai un datatable,initialement non affiché, sera affiché suite à un clique sur a4j:commandLink
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <a4j:outputPanel id="ll">
    	<h:dataTable id="services" value="#{muleservices.servicesLibelles}"
    		var="item" >
    		<h:column>
    			<a4j:commandLink value="#{item.libelle}"
    			action="#{servicesOperations.mesServicesOperations}"
    		       binding="#{muleservices.serviceCourant}"
    		styleClass="#{item.visited==true?'serviceActif':'serviceInactif'}" 
    		reRender="ll,jj,nomService,rt"/>
    		</h:column>
    			</h:dataTable>
    	</a4j:outputPanel>
    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
     
    <rich:tab label="Threading & Pooling" styleClass="classTab">
      <table >
    	<tr>
    		<td valign="top">
    	           <h:panelGrid columns="1" rendered="#{servicesOperations.afficherTab}">
    	<rich:panel bodyClass="inpanelBody" headerClass="outpanelHeader" 
    			style="width : 250px;" styleClass="classTab" >
    				<f:facet name="header" >
                       <h:outputText value="ThreadingProfile" id="thp"> 
                    </f:facet>
     
    			<rich:dataTable value="#{servicesThreadingProfile.listAtt}"
    									var="monMBeanAttributs" border="1" styleClass="classTab" style="width : 170px;" id="rt">
    			<rich:column style="width : 10px;">
     
    ...
    mon probleme est que ma datatable ne sera affiché qu'à la suite d'un second clique

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    tu fais reRender sur le composant serviceContainer, mais, je ne le vois pas dans le code.

  3. #3
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 686
    Points : 118
    Points
    118
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    tu fais reRender sur le composant serviceContainer, mais, je ne le vois pas dans le code.
    non, c'etait une faute de frappe
    il n'ya pas de rerender sur serviceContainer
    j'en fait un sur rt(mon datatable)

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    C'est normal, la table n'étant pas disponible dans le DOM la première fois, il n'est pas possible de la mettre à jour au retour de la requete ajax.

    tu peux laisser le reRender pour serviceContainer et ajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <a4j:outputPanel id="serviceContainer">
    <h:dataTable ../>
    </a4j:outputPanel>

  5. #5
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 686
    Points : 118
    Points
    118
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    C'est normal, la table n'étant pas disponible dans le DOM la première fois, il n'est pas possible de la mettre à jour au retour de la requete ajax.

    tu peux laisser le reRender pour serviceContainer et ajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <a4j:outputPanel id="serviceContainer">
    <h:dataTable ../>
    </a4j:outputPanel>
    j'ai ajouter <a4j:outputPanel id="serviceContainer"> et cet id dans le rerender de mon a4j:commandLink mais sans resultat:seulement le <f:facet name="header" > est affiché mais le contenu du datatable est vide!

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    la liste doit être vide..
    tu ne montre pas tous dans ton code, je ne vois pas de rendered pour la dataTable, y'en a que pour le panelGrid.

  7. #7
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 686
    Points : 118
    Points
    118
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    la liste doit être vide..
    tu ne montre pas tous dans ton code, je ne vois pas de rendered pour la dataTable, y'en a que pour le panelGrid.
    voici mon nouveau 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    <a4j:outputPanel id="sn">
    <h:panelGrid columns="1" rendered="#{servicesOperations.afficherTab}" >
    			<rich:panel bodyClass="inpanelBody"  headerClass="outpanelHeader" 
    				style="width : 250px;" styleClass="classTab" >
    				<f:facet name="header" >
                       <h:outputText value="ThreadingProfile" id="thp"/> 
                    </f:facet>
     
            <rich:dataTable value="#{servicesThreadingProfile.listAtt}"
    									  var="monMBeanAttributs" border="1" styleClass="classTab" style="width : 170px;" id="matable">
    			<rich:column style="width : 10px;">
    				<f:facet name="header" >
    					<f:verbatim >Nom</f:verbatim>
    			    </f:facet>
    		<h:outputText value="#{monMBeanAttributs.nomAttributs}" 
    				style="width : 5px;" styleClass="MonBouton"/>
    		</rich:column>
    		<rich:column width="6">
    		<f:facet name="header">
    											<f:verbatim>Valeur</f:verbatim>
    		</f:facet>
     
    	<h:inputText title="#{monMBeanAttributs.typeAttributs}"
    			readonly="#{monMBeanAttributs.readOnly}"
    			value="#{monMBeanAttributs.valeurAttributs}" 
    											style="width : 60px;" />
     
    		</rich:column>
    		</rich:dataTable>
     
    		<h:commandButton
    		action="#{servicesThreadingProfile.modifierAttribut}"
    			value="Valider" styleClass="Btn1Def"
    		/>
    		</rich:panel>
    	</h:panelGrid></a4j:outputPanel>
    et pour le a4j:commandLink:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <a4j:commandLink value="#{item.libelle}"
    					action="#{servicesOperations.mesServicesOperations}"
    					binding="#{muleservices.serviceCourant}"
    					styleClass="#{item.visited==true?'serviceActif':'serviceInactif'}" 
    					reRender="ll,jj,nomService,sn,matable"/>
    sans resultat

  8. #8
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    si le header de la dataTable s'affiche lorsque tu clique sur le commandLink, c'est que la liste (listAtt) est vide,

    tu peux ajouter au test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rendered="#{not empty servicesThreadingProfile.listAtt and servicesOperations.afficherTab}"
    Ceci dit primo: je ne vois pas pourquoi tu utilise panelGrid, tu peux mettre le rendered directement dans le rich:panel et secondo: le binding sur le commandLink, s'il n'est pas utilisé pour gérer le composant dynamiquement coté java est strictement inutile et peut être source de problèmes.

  9. #9
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 686
    Points : 118
    Points
    118
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    si le header de la dataTable s'affiche lorsque tu clique sur le commandLink, c'est que la liste (listAtt) est vide,

    tu peux ajouter au test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rendered="#{not empty servicesThreadingProfile.listAtt and servicesOperations.afficherTab}"
    Ceci dit primo: je ne vois pas pourquoi tu utilise panelGrid, tu peux mettre le rendered directement dans le rich:panel et secondo: le binding sur le commandLink, s'il n'est pas utilisé pour gérer le composant dynamiquement coté java est strictement inutile et peut être source de problèmes.
    merci infiniment sniper, avec not empty servicesThreadingProfile.listAtt c'est resolu;je ne connaissait pas ce syntax
    pour mon panelGrid,c'est juste de l'ergonomie
    pour le binding sur mon commandLink, il me sert pour recuperer le nom du commandLink car la liste des commandLink est créé dynamiquement
    merci pour une deuxième fois pour votre aide

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

Discussions similaires

  1. rich:Datatable,a4j:commandlink et accent
    Par royrremi dans le forum JSF
    Réponses: 7
    Dernier message: 17/02/2010, 13h00
  2. probleme avec a4j:commandLink
    Par riadhhwajdii dans le forum JSF
    Réponses: 1
    Dernier message: 18/08/2009, 20h08
  3. probleme avec a4j:commandLink
    Par riadhhwajdii dans le forum JSF
    Réponses: 6
    Dernier message: 01/08/2009, 14h24
  4. probleme java 1.5 (affichage applet)
    Par argon dans le forum AWT/Swing
    Réponses: 21
    Dernier message: 19/03/2006, 13h26
  5. [Struts]probleme de saisie et affichage de la saisie
    Par stanilas dans le forum Struts 1
    Réponses: 9
    Dernier message: 02/08/2005, 10h26

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