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 de suppression d'une ligne de datatable


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 42
    Par défaut probleme de suppression d'une ligne de datatable
    salut,

    j'ai passé des journées à comprendre un phénomeme que je n'ai pas réussi à le saisir:
    j'ai une datatable qu contient des données stockés dans une liste codée à la main.
    sur cette DT il ya un commandButton qui permet de supprimer la ligne courante
    quand je clique su le bouton rien ne se passe
    pourtant le code me semble correct

    voici le contenu de ma page jsp:
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
    <%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
    <%@ taglib prefix="rich" uri="http://richfaces.org/rich"%>
    <%@ taglib prefix="a4j" uri="http://richfaces.org/a4j"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <link href="/CSS/chatsmsweb.css" rel="stylesheet" type="text/css" />
    
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>titre de  la page</title>
    </head>
    <body>
    <f:view>
    <h:form>
    <rich:panel styleClass="outputText"
    style="border:1; border-color:red;margin-left:200px;bottom:200px; width : 599px;">
    <f:facet name="header">
    <h:outputText value="Liste des membres du chat" />
    </f:facet>
    <rich:dataTable id="tableprofils" value="#{profilBean.profils}"
    var="profil" rowKeyVar="row">
    
    <h:column>
    <f:facet name="header">
    <h:outputText value="Pseudo" />
    </f:facet>
    <h:outputText id="pseudo" value="#{profil.pseudo}" />
    </h:column>
    
    <h:column>
    <f:facet name="header">
    <h:outputText value="Téléphone" />
    </f:facet>
    <h:outputText id="numtel" value="#{profil.numTel}" />
    </h:column>
    
    <h:column>
    <f:facet name="header">
    <h:outputText value="sexe" />
    </f:facet>
    <h:outputText id="sexe" value="#{profil.sexe}" />
    </h:column>
    
    <h:column>
    <f:facet name="header">
    <h:outputText value="centre d'interet" />
    </f:facet>
    <h:outputText id="hobby" value="#{profil.hobby}" />
    </h:column>
    
    <h:column>
    <f:facet name="header">
    <h:outputText value="salon" />
    </f:facet>
    <h:outputText id="salon" value="#{profil.salon}" />
    </h:column>
    
    <h:column>
    <f:facet name="header">
    <h:outputText value="date d'inscription" />
    </f:facet>
    <h:outputText id="insdate" value="#{profil.insDate}" />
    </h:column>
    <h:column>
    <f:facet name="header">
    <h:outputText value="action" />
    </f:facet>
    
    <a4j:commandButton value="Supprimer" action="#{profilBean.delete}"
    reRender="tableprofils">
    <f:setPropertyActionListener target="#{profilBean.rowIndex}"
    value="#{row}"/>
    </a4j:commandButton>
    
    </h:column>
    </rich:dataTable>
    </rich:panel>
    </h:form>
    </f:view>
    </body>
    </html
    voici mon bean managé profilBean
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    package beans;
     
    import java.util.ArrayList;
    import java.util.List;
     
    import javax.annotation.PostConstruct;
     
    import model.Profil;
     
    public class ProfilBean {
     
    	int rowIndex;
     
    	public int getRowIndex() {
    		return rowIndex;
    	}
     
    	public void setRowIndex(int rowIndex) {
    		this.rowIndex = rowIndex;
    	}
     
    	private List<Profil> profils;
     
    	public List<Profil> getProfils() {
    		return profils;
    	}
     
    	public void delete() {
    		profils.remove(rowIndex);
    	}
     
    	@PostConstruct
    	public void init() {
     
    		try {
    			profils = new ArrayList<Profil>();
     
    			profils.add(new Profil("22505050", "male", "25", "sport",
    			"jeunesse", "toto", "22-08-2009 08:20:50"));
     
    			profils.add(new Profil("22404040", "femelle", "19", "musique",
    			"jeunesse", "titi", "09-10-2009 15:43:15"));
     
    			profils.add(new Profil("22303030", "male", "35", "foot", "sport",
    			"midou", "15-09-2009 23:26:32"));
     
    			profils.add(new Profil("22202020", "femelle", "22", "lecture",
    			"cuisine", "sallouha", "27-10-2009 19:22:25"));
     
    			profils.add(new Profil("22212221", "femelle", "22", "musique",
    			"cuisine", "ammoura", "07-10-2009 19:12:25"));
     
    			profils.add(new Profil("22232223", "male", "28", "foot", "beauté",
    			"hannouna", "28-08-2009 14:25:28"));
     
    			profils.add(new Profil("22242224", "male", "25", "voley",
    			"jeunesse", "riri", "07-10-2009 19:12:25"));
     
    			profils.add(new Profil("22162020", "femelle", "31", "voyage",
    			"beauté", "daddou", "07-10-2009 19:12:25"));
     
     
     
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
     
    	public void setProfils(List<Profil> profils) {
    		this.profils = profils;
    	}
     
    }
    je me suis cassé trop la tete et je commence à deseperer
    j'ai tout essayé mais rien ne marche

  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
    Est ce que la fonction est exécutée ?

  3. #3
    Membre averti
    Inscrit en
    Août 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 42
    Par défaut
    Mise à jour:

    j'ai réussi enfin à faire fonctionner la suppression qui agit sur l'element en cours.

    mais quand je supprime la ligne qui se positionne à la place de celle que je vient de supprimer, rien ne se passe et je suis obligé de passer à un autre enregistrement pour le supprimer

    le probleme c'est que la liste des éléments est reconstruite à chaque reRender de la table, ce qui fait que la suppression s'effectue uniquement sur la table et non sur la liste


    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
     
    @PostConstruct
    public void init() {
     
     try {
     profils = new ArrayList<Profil>();
     
     profils.add(new Profil("22505050", "male", "25", "sport", "jeunesse", "toto", "22-08-2009 08:20:50"));
     
     profils.add(new Profil("22404040", "femelle", "19", "musique",	"jeunesse", "titi", "09-10-2009 15:43:15"));
     
     profils.add(new Profil("22303030", "male", "35", "foot", "sport", "midou", "15-09-2009 23:26:32"));
     
     profils.add(new Profil("22202020", "femelle", "22", "lecture","cuisine", "sallouha", "27-10-2009 19:22:25"));
     
     profils.add(new Profil("22212221", "femelle", "22", "musique",	"cuisine", "ammoura", "07-10-2009 19:12:25"));
     
     profils.add(new Profil("22232223", "male", "28", "foot", "beauté","hannouna", "28-08-2009 14:25:28"));
     
     profils.add(new Profil("22242224", "male", "25", "voley","jeunesse", "riri", "07-10-2009 19:12:25"));
     
     profils.add(new Profil("22162020", "femelle", "31", "voyage",	"beauté", "daddou", "07-10-2009 19:12:25"));
     
     } catch (Exception e) {
    	e.printStackTrace();
     }
    }
    je voudrais savoir comment je fais pour peupler ma data table avec des une liste d'éléments sans que cette dernière ne soit recréée à chaque rafraichissement de la table

  4. #4
    Membre averti
    Inscrit en
    Août 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 42
    Par défaut
    Salut tout le monde,
    j'ai mis ci-joint le code de mon projet richfaces en question.

    il se constitue de 2 pages: 1 page de login qui redirige en cas de succés vers une page jsp qui s'appelle bannir membres.

    cette page contient une datatable avec des enregistrements codés en dur et un bouton sur chaque ligne pour supprimer la ligne courante.

    le problème c'est que le bouton ne marche pas et ne supprime rien.

    si quelqu'un pourrait voir le code et me dire où réside l'erreur, je serais très reconnaissant

    PS: le code est fait sous eclipse 3.4 avec jboss tools 3.0.1 et richfaces 3.2
    PS: j'ai supprimé les jar du dossier /web-inf/lib à cause de la limite de la taille des fichiers zip joints (512ko)
    les jar sont:
    • common-annotaions.jar

    • commons-beanutils.jar

    • commons-collections.jar

    • commons-digester.jar

    • commons-logging.jar

    • el-ri.jar

    • jsf-api.jar

    • jsf-facelets.jar

    • jsf-impl.jar

    • jstl.jar

    • standard.jar

    • richfaces-api-3.20.GA.jar

    • richfaces-iml-3.2.0.GA


    veuillez les ajouter à la main svp

    merci d'avance pour votre aide
    Fichiers attachés Fichiers attachés

  5. #5
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Bonjour,

    Ce serait peut être plus simple si tu nous montrais juste le code de ta datatable avec le bouton en question, ainsi que la méthode du bean qui est appelée...

    Juste pour être sûr : ton bouton, il est bien dans un <h:form> ?
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  6. #6
    Membre averti
    Inscrit en
    Août 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 42
    Par défaut
    Bonjour,

    Ce serait peut être plus simple si tu nous montrais juste le code de ta datatable avec le bouton en question, ainsi que la méthode du bean qui est appelée...
    j'ai mis le code de la datatable et du managed bean dans la premiere section de ce post

    Juste pour être sûr : ton bouton, il est bien dans un <h:form> ?
    oui, il est bel est bien dans un <h:form>

Discussions similaires

  1. Réponses: 8
    Dernier message: 26/06/2015, 07h19
  2. Réponses: 0
    Dernier message: 22/08/2009, 13h04
  3. [VS2008]suppression d'une ligne de datatable impossible
    Par olivier57b dans le forum VB.NET
    Réponses: 1
    Dernier message: 11/03/2008, 16h54
  4. Réponses: 4
    Dernier message: 24/08/2007, 16h44
  5. Réponses: 6
    Dernier message: 04/03/2004, 09h35

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