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 :

Editer un contact a partir d'un dataTable


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 45
    Par défaut Editer un contact a partir d'un dataTable
    Bonjour
    Je suis entrain de développer une application web pour mon PFE,
    et j'ai rencontré ce probleme:
    J'ai faits un richdataTable, et je veux editer la ligne sélectionné, mais ça marche pas.
    ça me faits pas la mise à jour et ne me rends aucune erreur
    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
    <rich:dataTable value="#{jortControl.listJortss}" var="list">
      //liste de mes colonnes de données
     // puis la colonne contenant mon bouton d'Edit
    <rich:column>
        <a4j:commandButton image="/img/edit.png" ajaxSingle="true"
    	oncomplete="#{rich:component('monPanelEdit')}.show();" reRender="contactInfo">
    	<f:setPropertyActionListener value="#{list}"
    	target="#{monControl.selectedContact}" />
    	</a4j:commandButton>
      </rich:column>
     
    </rich:dataTable>
    Dans mon panel d'edit, je reçoit bien mes données relatifs à la ligne sélectionnée:
    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
    <rich:modalPanel id="monPanelEdit">		
    			<f:facet name="header">  
    			 <h:outputText value="Edition contact"/>			  
    			</f:facet>			
    			   <rich:graphValidator>
    				<h:panelGrid id="contactInfo"  columns="2">
    					<h:outputText id="numero" value="Numero" />
    					<h:inputText value="#{monControl.selectedContact.num}" />
    					<h:outputText id="date" value="Date naissance" />
    					<rich:calendar value="#{monControl.selectedContact.dateNai}"
    						required="true" enableManualInput="false" locale="fr-Fr"
    						datePattern="dd/MM/yyyy" showApplyButton="true" popup="true">
    					</rich:calendar>
    					<h:outputText id="prenom" value="prenom" />
    					<h:inputText  value="#{monControl.selectedContact.prenom}" />
    				</h:panelGrid>
                 </rich:graphValidator>
                 <br><br>
                 <rich:toolBar>
    		      <rich:toolBarGroup>
    		        <a4j:commandLink
    						onclick="#{rich:component('monPanelEdit')}.hide();return false"> 
    		                 Fermer  
    		         </a4j:commandLink>					   
    			     <a4j:commandLink reRender="contactInfo" action="#{monControl.updateContact}" 
    			               oncomplete="#{rich:component('monPanelEdit')}.hide();return false" > 
    		                    Appliquer  
    		         </a4j:commandLink>
    		    </rich:toolBarGroup>		
    		  </rich:toolBar>	
    		</rich:modalPanel>
    monControler.java:
    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
    ContactDAORemote contact=new ContactDAORemote();
    public void updateContact(){
     
    		try {
    			context = new InitialContext();
    			contact = (ContactDAORemote) context.lookup("ContactDAO/remote");
    		    contact.updateContact(getSelectedContact());
     
    		} catch (NamingException e) {
    			e.printStackTrace();
    		}		
    	}
    	Mon contactDAO:
     
    	public Contact updateCort(final Contact contact) {
    		 em.merge(contact);
    		 return contact;
    	}

  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
    Par défaut
    un exemple est disponible sur dans la demo Richfaces.

  3. #3
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 45
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    un exemple est disponible sur dans la demo Richfaces.
    Merci Sniper,
    effectivement, j'ai vu cet exemple avant de poster.
    Mais mon probleme c'est au niveau de mon bean

  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
    Par défaut
    et si après la fermeture de la modalPanel tu fais un F5? si tu vois la valeur mise à jour, il faut ajouter reRender de la dataTable dans ton button update; sinon l'action ne s'exécute pas, faut passer en debug et voir ce qui se passe en détail.

  5. #5
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 45
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    et si après la fermeture de la modalPanel tu fais un F5? si tu vois la valeur mise à jour, il faut ajouter reRender de la dataTable dans ton button update; sinon l'action ne s'exécute pas, faut passer en debug et voir ce qui se passe en détail.
    J'ai faits reRender sur ma table, les changements que je faits ne s'appliquent pas; au contraire je perds les données provenant des autres entities en liaisons.
    Donc, mon bean d'aupdate ne faits pas son boulot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //Mon controler
    ContactDAORemote contact=new ContactDAORemote();
    public void updateContact(){
     
    		try {
    			context = new InitialContext();
    			contact = (ContactDAORemote) context.lookup("ContactDAO/remote");
    		    contact.updateContact(getSelectedContact());
     
    		} catch (NamingException e) {
    			e.printStackTrace();
    		}		
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //Mon contactDAO
     
    public Contact updateContact(final Contact contact) {
    		 em.merge(contact);
    		 return contact;
    	}

  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
    Par défaut
    le problème vient de ta méthode update.
    Ce n'est pas clair ce que tu fais,
    mais, tu dois récupérer la ligne sélectionnée modier l'objet et sauvegarder la liste avec l'objet modifié, je ne vois pas ça dans ton code.

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/07/2008, 08h55
  2. [C#2.0] Mettre à jour la base de données à partir d'une DataTable
    Par Rodie dans le forum Accès aux données
    Réponses: 6
    Dernier message: 16/05/2007, 14h24
  3. Réponses: 10
    Dernier message: 05/09/2006, 14h02
  4. [C#] mettre à jour ma bdd à partir d'une datatable
    Par rudhf dans le forum Windows Forms
    Réponses: 17
    Dernier message: 27/04/2006, 14h27
  5. Contact Outlook à partir d'Excel
    Par Memes dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/12/2005, 11h33

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