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 avec la methode getRowData()


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 45
    Par défaut probleme avec la methode getRowData()
    Bonjour tout le monde, j'ai un problème de récupération de lignes avec la méthode, j'utilise un <rich:datatable> pour afficher les enregistrements, j'ai utilisé un bouton dans chaque ligne pour récupérer les détails sur chaque enregistrement dans un <rich:modalPanel>.le problème est quand je clique sur le bouton détails je récupère a chaque fois le premier enregistrement du datatable.
    le code que j'utilise pour ma page jsf est comme suit:
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    <rich:dataTable value="#{commercantBean.dataModel}" var="cmr"
    rowClasses="row1, row2" id="table" rows="10"
    						columnClasses="50,100,100,100"
    						onRowMouseOver="this.style.backgroundColor='#B5F3FB'"
    						onRowMouseOut="this.style.backgroundColor='#{a4jSkin.rowBackgroundColor}'"
    						width="350" >
    
    
        <f:facet name="header">
            <h:outputText value="Commerçant" />
        </f:facet>
        <rich:column >
    	<f:facet name="header">
    	<h:outputText value="#{msgs.IDCOMMERCANT}" />
    	</f:facet>
    	<h:outputText value="#{cmr.id_Commercant}"  />
    	</rich:column>
    ...
    <h:column>
    	<f:facet name="header">
    	<h:outputText value="#{msgs.DETAILS}"/>
    	</f:facet>
    	<a4j:commandButton action="#{commercantBean.Details}"
            oncomplete="javascript:Richfaces.showModalPanel('panel');" value="#{msgs.DETAILS}"/>
    	
    
    <rich:modalPanel id="panel" autosized="false" keepVisualState="false" width="350" height="350">
                    <f:facet name="header">
                        <h:outputText value="Selected Rows"/>
                    </f:facet>
                    <f:facet name="controls">
                        <span style="cursor:pointer" onClick="javascript:Richfaces.hideModalPanel('panel')">X</span>
                    </f:facet>
                <h:panelGroup layout="block" styleClass="scrolls">
                <center>
                  <table width="432" border="0">
                    <tr>
                      <td width="195"><h:outputText value="#{msgs.LASTNAMECOMMERCANT}" /></td>
                      <td width="373"><div align="center">
                          <h:outputText id="name_cmr" value="#{commercantBean.cmr.last_name}" />
                      </div></td>
                      <td width="373"></td>
                    </tr>
    ....
     <tr>
                      <td><h:outputText value="#{msgs.LABEL_ZIPCODE}" /></td>
                      <td><div align="center">
                          <h:outputText id="zip" value="#{commercantBean.cmr.zip_code}" />
                      </div></td>
                      <td><h:message for="zip" styleClass="errMsg"/></td>
                    </tr>
    
                  </table>
                </center>
                </h:panelGroup>
            </rich:modalPanel>
    et pour le code que je mets dans le managed bean pour la méthode détails est comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	public String Details(){
    		this.cmr=(Commercant) DataModel.getRowData();	
    		return null;
    	}
    dans l'attente de aide, merci davance

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 152
    Par défaut
    quel est le scope de ton managed bean ? (l'idéal est qu'il soit en session)

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 45
    Par défaut
    Citation Envoyé par piopium Voir le message
    quel est le scope de ton managed bean ? (l'idéal est qu'il soit en session)
    merci pour ta réponse, oui le scope de mon managed bean est en session

  4. #4
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 59
    Par défaut
    Tu peut essayer d'utiliser a4j:support, cette exemple marche nickel:

    dans t'as page:
    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
     
    <rich:dataTable value="#{AccountBean.listAccount}" var="account"
    	id="idAcc" rows="2"
    	onRowMouseOver="this.style.backgroundColor='#DBD6FF'"
    	onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
    	width="500">
     
    	<a4j:support event="onRowClick" bypassUpdates="true"
    		actionListener="#{AccountBean.selectionneElement}" reRender="idAcc">
    	</a4j:support>
     
    	<f:facet name="header">
    		<rich:columnGroup>
    			<rich:column breakBefore="true">
    				<h:outputText value="#{msg.Nature}"></h:outputText>
    			</rich:column>
    		</rich:columnGroup>
    	</f:facet>
    	<rich:column>
    		<h:outputText value="#{account.natureCompte}" />
    	</rich:column>
     
     
    	<f:facet name="footer">
    		<rich:datascroller for="idAcc" />
    	</f:facet>
     
    </rich:dataTable>
    et dans ton Bean:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
     public void selectionneElement(ActionEvent evt) {
            //Recuperer t'as ligne
    	Account acc = (Account) listAccount.getRowData();
    }
    sinon FAQ JSF Comment récupérer la ligne active d'une dataTable

  5. #5
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 45
    Par défaut
    merci pour ton aide Seiphir0the, le problème que j'avais c'est que j'omettais d'actualiser mon panel avec reRender.
    voici la solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    	<a4j:commandButton action="#{commercantBean.Details}"
            oncomplete="javascript:Richfaces.showModalPanel('panel');" value="#{msgs.DETAILS}"
            reRender="panel" />

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

Discussions similaires

  1. probleme avec une methode static dans le body d'une jsp
    Par amadou.deme dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 19/02/2007, 08h47
  2. Probleme avec la methode readLine()!
    Par thenightmare1985 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 26/10/2006, 20h00
  3. [JTextArea]Probleme avec la methode select
    Par caneman dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 30/07/2006, 14h50
  4. [VB.NET] Probleme avec la methode ReadToEnd
    Par Aspic dans le forum VB.NET
    Réponses: 2
    Dernier message: 02/12/2005, 21h10
  5. [Struts] Problème avec la méthode validate
    Par clement42 dans le forum Struts 1
    Réponses: 2
    Dernier message: 09/06/2005, 10h52

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