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 :

Raffraichissement update apres suppression row dans datatable


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 177
    Par défaut Raffraichissement update apres suppression row dans datatable
    Bonjour
    Est ce que quelqu'un peut me donner une piste sur comment puis faire pr raffraichir uniquement un element ?

    J'utilise un dataTable de richfaces. J'affiche des membres de ma BD puis je supprime selon la ligne selectionné.

    Pour l'instant ca ne fait que le travail côté serveur, ca supprime ds ma base et ca ne se raffraichit pas sur la partie graphique. J'ai essayé de le faire mais sans succé. Je vous met mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <rich:dataTable value="#{MemberController.memberName}" var="dataItem" binding="#{MemberController.dataTable}">
    .....
    <h:commandButton id="dataTable" value="Supprimer">
                                <a4j:support event="onclick" action="#{MemberController.deleteMember}" immediate="true" reRender="dataTable"/>
     </h:commandButton>
    Cela supprime bien ma ligne mais ca ne se raffraichit pas. J'ai utilisé richfaces pour justement les requête ajax et éviter de tout recharger.

    Peux t'on me donner les pistes svp ?
    Je me demande si je dois créer un nouvelle méthode "update" qui va de nouveau lire ma base mais ds ce cas, je perds l'avantage d'ajax.

    Je maitrise mal les balises "a4j:support". Avant j'utilisé "a4j:commandButton" mais sans succé

    Merci de votre aide

  2. #2
    Membre averti
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Par défaut
    Le composant a rafraichir est le datatable.
    donc vous devez donner un id au datatable et faire un reRender depuis <a4j:event>

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 177
    Par défaut
    Tout d'abord Merci pour ton aide

    C'est ce que j'avais fait au debut de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     <rich:dataTable value="#{MemberController.memberName}" var="dataItem" id="dataTable"..
    puis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <a4j:commandButton value="Supprimer" 
             action="#{MemberController.deleteMember}" reRender="dataTable">
    </a4j:commandButton>
    Mais ca ne marche pas

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 177
    Par défaut
    J'ai testé ca aussi mais cela fait comme un raffraichissement de ma page (comme f5 en visuel) mais ma ligne supprimé est toujours à l'écran :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:commandButton id="dataTable" value="Supprimer">
         <a4j:support event="onclick" action="#{MemberController.deleteMember}" immediate="true" reRender="dataTable"/>
    </h:commandButton>
    ???

  5. #5
    Membre averti
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Par défaut
    ok , lorsque tu fais un reRender pour le dataTable en effet tu fais un appel pour la méthode MemberController.getMemberName() . c'est la liste qui alimente ton dataTable.
    il faut que tu actualise cette liste .
    par exemple dans cette méthode tu peux faire une requête a ta base de donnée pour qu'elle te renvoie la liste des nouveaux membres

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 177
    Par défaut
    Je ne suis pas sur de comprendre la methode. Tu me conseils de refaire une requête pr actualiser ma nouvelle base de donnée.

    Ce que je ne saisie pas trop, c'est ou la mettre. Je voulais la mettre dans ma methode delete mais cela ne fonctionne pas.

    Si je comprends ce que tu me dis, tu me conseils de mettre une requête dans ma methode ou se situe ma liste "memberName" ??

    Car je fais djà une requete select avec mon datamodel dessus...

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

Discussions similaires

  1. [Débutant] Suppression Row dans une DataGridView avec click droit
    Par didou038 dans le forum VB.NET
    Réponses: 2
    Dernier message: 24/01/2015, 17h37
  2. Réponses: 0
    Dernier message: 24/05/2010, 22h02
  3. Réponses: 7
    Dernier message: 16/09/2009, 16h27
  4. Réponses: 36
    Dernier message: 26/11/2008, 16h55
  5. Problème de taille après suppression de lignes dans un recordset...
    Par nikko_54 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 19/04/2006, 22h18

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