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] CommandLink dans une dataTable


Sujet :

JSF Java

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 57
    Points : 50
    Points
    50
    Par défaut [RichFaces] CommandLink dans une dataTable
    Bonjour et meilleurs vœux à tous ...

    Je suis en train de développer une appli web basée sur JSF et RichFaces.

    J'ai une page de recherche qui m'affiche une liste de resultats dans une datatable.
    Chaque ligne de la table à une colonne sur laquelle j'ai mis un commandLink qui devrait m'ouvrir une page d'edition pour la ligne selectionnée.

    Code de ma datatable
    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
     
    <h:form>
    		<a4j:outputPanel id="resultTable">
    		<rich:panel rendered="#{retrieveExperimentBean.experimentsSize > 0}" >
    			<f:facet name="header"><h:outputText value="#{msg['manageExperiment.label.result']} : #{retrieveExperimentBean.experimentsSize}" /> </f:facet>
    			<h:panelGrid id="panelResult" columns="1" width="100%" >			
    				<rich:dataTable align="center" binding="#{retrieveExperimentBean.experimentsTable}" value="#{retrieveExperimentBean.experiments}" rows="10" var="exp" id="dt">
    					<rich:column sortBy="#{exp.id.code}">
    						<f:facet name="header"><h:outputText value="#{msg['manageExperiment.label.experiment']}" /></f:facet>
    						<h:commandLink immediate="true" action="#{retrieveExperimentBean.editExperiment}" value="#{exp.id.code}"/>
    					</rich:column>
    					<rich:column sortBy="#{exp.definition}">
    						<f:facet name="header"><h:outputText value="#{msg['manageExperiment.label.definition']}" /></f:facet>	
    						<h:outputLabel value="#{exp.definition}" />
    					</rich:column>
    					<rich:column sortBy="#{exp.type.id.code}">
    						<f:facet name="header"><h:outputText value="#{msg['manageExperiment.label.type']}" /></f:facet>	
    						<h:outputLabel value="#{exp.type.id.code}"/>
    					</rich:column>
    					<rich:column sortBy="#{exp.startDate}">
    						<f:facet name="header"><h:outputText value="#{msg['manageExperiment.label.startDate']}" /></f:facet>	
    						<h:outputLabel value="#{exp.startDate.time}"><f:convertDateTime pattern="#{msg['pattern.date']}" /></h:outputLabel>
    					</rich:column>
    					<f:facet name="footer" width="50%">
    						<rich:datascroller align="center" for="dt" id="ds" renderIfSinglePage="false"></rich:datascroller>
    					</f:facet>
    				</rich:dataTable>
    			</h:panelGrid>
    		</rich:panel>
    		</a4j:outputPanel>
    	</h:form>
    Code de la méthode appelé dans mon bean
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    /**
             * Edit experiment action
             * 
             * @return
             */
    	public String editExperiment() {
    		Experiment experiment = (Experiment) this.experimentsTable.getRowData();
    		sgaLogger.debug(experiment.toString());
     
    		return SgaForward.EXPERIMENT_EDIT;
    	}
    Code des regles de navigation dans le face-config.xml
    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
     
    <navigation-rule>
    		<navigation-case>
    			<from-outcome>editExperiment</from-outcome>
    			<to-view-id>/pages/manageExperiment/updateExperiment.xhtml</to-view-id>
    			<redirect />
    		</navigation-case>
    		<navigation-case>
    			<from-outcome>retrieveExperiment</from-outcome>
    			<to-view-id>/pages/manageExperiment/retrieveExperiment.xhtml</to-view-id>
    			<redirect />
    		</navigation-case>
    		<navigation-case>
    			<from-outcome>findExperiments</from-outcome>
    			<to-view-id>/pages/manageExperiment/findExperiment.xhtml</to-view-id>
    			<redirect />
    		</navigation-case>
    		<navigation-case>
    			<from-outcome>findOneExperiment</from-outcome>
    			<to-view-id>/pages/manageExperiment/findOneExperiment.xhtml</to-view-id>
    			<redirect />
    		</navigation-case>
    	</navigation-rule>
    Le problème est que je n'arrive pas à rentrer dans la méthode de mon bean (editExperiment).

    PS : si je mets le lien en dehors de la datatable, ca marche et je rentre bien dans la méthode de mon bean (editExperiment).

    Merci pour vos conseils ...

  2. #2
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 57
    Points : 50
    Points
    50
    Par défaut
    Pour info ce bout de code fonctionne très bien ...

    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
     
    <h:form id="experimentsResultForm">
    	<a4j:outputPanel id="experimentsResult">
     
    		<h:panelGrid width="100%" style="text-align:center">
    			<h:messages tooltip="true" layout="table" errorClass="errorMessage"/>
    		</h:panelGrid>
     
    		<rich:panel rendered="#{retrieveExperimentBean.experimentsSize > 0}">
    			<f:facet name="header"><h:outputText value="#{msg['manageExperiment.label.result']} : #{retrieveExperimentBean.experimentsSize}" /></f:facet>
    			<h:panelGrid columns="1" width="100%">		
    				<rich:dataTable align="center" binding="#{retrieveExperimentBean.dataTable}" value="#{retrieveExperimentBean.experiments}" rows="10" var="exp" id="experimentsDataTable" >
    					<rich:column sortBy="#{exp.code}" id="expCode">
    						<f:facet name="header"><h:outputText value="#{msg['manageExperiment.label.experiment']}" id="expCodeHeader" /></f:facet>
    						<h:commandLink action="#{retrieveExperimentBean.editExperiment}" value="#{exp.code}" id="expCodeLink" />
    					</rich:column>
    					<rich:column sortBy="#{exp.definition}" id="expDef">
    						<f:facet name="header"><h:outputText value="#{msg['manageExperiment.label.definition']}" id="expDefHeader" /></f:facet>	
    						<h:outputLabel value="#{exp.definition}" id="expDefLabel"/>
    					</rich:column>
    					<rich:column sortBy="#{exp.type}" id="expType">
    						<f:facet name="header"><h:outputText value="#{msg['manageExperiment.label.type']}" id="expTypeHeader" /></f:facet>	
    						<h:outputLabel value="#{exp.type}" id="expTypeLabel"/>
    					</rich:column>
    					<rich:column sortBy="#{exp.startDate}" id="expStart">
    						<f:facet name="header"><h:outputText value="#{msg['manageExperiment.label.startDate']}" id="expStartHeader" /></f:facet>	
    						<h:outputLabel value="#{exp.startDate.time}" id="expStartLabel"><f:convertDateTime pattern="#{msg['pattern.date']}" /></h:outputLabel>
    					</rich:column>
    					<f:facet name="footer">
    						<rich:datascroller align="center" for="experimentsDataTable" id="experimentsDataScroll" renderIfSinglePage="false" />
    					</f:facet>
    				</rich:dataTable>
    			</h:panelGrid>
    			<br />
    		</rich:panel>
    	</a4j:outputPanel>
    	</h:form>

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/04/2012, 11h26
  2. commandLink dans une datatable
    Par Viscapon dans le forum JSF
    Réponses: 7
    Dernier message: 10/05/2009, 22h34
  3. commandLink dans une datatable
    Par troubleshooting dans le forum JSF
    Réponses: 2
    Dernier message: 20/04/2009, 13h03
  4. Réponses: 3
    Dernier message: 26/11/2007, 12h11
  5. Réponses: 3
    Dernier message: 19/07/2006, 14h28

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