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 :

PrimeFaces Datatable et RowEditListener


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Points : 559
    Points
    559
    Par défaut PrimeFaces Datatable et RowEditListener
    Salut

    Je ne comprends pas ce qui va mal ...

    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
     
    public class Toto implements Serializable {
     
        /**
        * 
        */
       private static final long serialVersionUID = -8146181369829766354L;
     
       /**
        * 
        */
       private Long id;
     
        /**
         * 
         */
        private String name;
     
     
        /**
         * @return
         */
        public Long getId() {
            return id;
        }
     
        /**
         * @param id
         */
        public void setId(Long id) {
            this.id = id;
        }
     
        /**
         * @return
         */
        public String getName() {
            return name;
        }
     
        /**
         * @param name
         */
        public void setName(String name) {
            this.name = name;
        }
     
     
     
        @Override
       public boolean equals(Object obj) {
          if(obj == null)
             return false;
          if(!(obj instanceof Toto))
             return false;
     
          Long test1 = this.id;
          Long test2 = ((Toto)obj).getId();
          return test1.equals(test2);
       }
     
       @Override
       public int hashCode() {
           int hash = 1;
           return hash * 31 + name.hashCode();
       }
     
    }
    Avec cette managed bean :
    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
     
    @ManagedBean
    @SessionScoped
    public class TestData implements Serializable {
     
     
       /**
        * 
        */
       private static final long serialVersionUID = 773591323733815749L;
     
     
       public List<Toto> getListTotos(){
          List<Toto> list = new ArrayList<Toto>();
     
          Toto t1 = new Toto();
          t1.setId(1l);
          t1.setName("toto1");
          list.add(t1);
     
          Toto t2 = new Toto();
          t2.setId(2l);
          t2.setName("toto2");
          list.add(t2);
     
          Toto t3 = new Toto();
          t3.setId(3l);
          t3.setName("toto3");
          list.add(t3);
     
          return list;
       }
     
       public void onEditRow(RowEditEvent event) {
          Toto editedCar = (Toto) event.getObject();
          System.out.println(editedCar.getId());
          System.out.println(editedCar.getName());
          System.out.println();
          //persist to database
       }
     
    }
    et le JSF :
    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
     
    <p:dataTable  var="toto" value="#{testData.listTotos}"
                         rowEditListener="#{testData.onEditRow}"
                       >
     
     
                            <f:facet name="header">
                                        Toto list
                            </f:facet>
     
                            <p:column headerText="Options" style="width:50px">
                               <p:rowEditor />
                            </p:column>
     
                            <p:column     style="width:450px"
                                         headerText="RECIPIENT" footerText="exact"  
                                         filterMatchMode="exact">  
                                     <p:cellEditor>
                                        <f:facet name="output">
                                           <h:outputText value="#{toto.id}" />
                                        </f:facet>
                                        <f:facet name="input">
                                           <h:inputText value="#{toto.id}"  />
                                        </f:facet>
                                     </p:cellEditor>
                                  </p:column>
     
                            <p:column     style="width:450px"
                                         headerText="RECIPIENT" footerText="exact"  
                                         filterMatchMode="exact">  
                                     <p:cellEditor>
                                        <f:facet name="output">
                                           <h:outputText value="#{toto.name}" />
                                        </f:facet>
                                        <f:facet name="input">
                                           <h:inputText value="#{toto.name}"  />
                                        </f:facet>
                                     </p:cellEditor>
                                  </p:column>
     
     
                         </p:dataTable>
    Le problème est quand je valide la modification de ce champ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h:inputText value="#{toto.name}"  />

    J'ai toujours dans mon écouteur d'événement la valeur de l'objets anciens: ??!! (pour quoi elle n'est pas modifier) (peu être je n'utilise pas le bonne listnere ?)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Toto editedCar = (Toto) event.getObject();
          System.out.println(editedCar.getId());
          System.out.println(editedCar.getName());
    en plus le problème aussi ces que je n'est pas de message d'erreur notable (je suis dans le flous)

    Merci

  2. #2
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Salut, moi aussi j'ai le meme problème que le tiens, est ce que tu as résolu le problème?
    Si oui, prière de me répondre ça fait des jours que je suis bloqué la dessus.
    Merci d'avance

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 93
    Points : 126
    Points
    126
    Par défaut
    Bonjour.

    Peux tu essayer avec la méthode : onEdit ?
    Pour une bonne résolution :
    - N'hésitez pas à donner le maximum d'informations sur vos problèmes, ca vous fera gagner du temps en évitant les aller-retours.
    - Si vous utilisez maven, pensez à rajouter votre pom !

    --> Le meilleur code est celui qui concrétise ce qui a été posé et analysé sur le papier

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/11/2018, 16h04
  2. [PrimeFaces] dataTable cellEditor
    Par empire.dev dans le forum JSF
    Réponses: 2
    Dernier message: 01/08/2013, 09h11
  3. Réponses: 2
    Dernier message: 21/12/2012, 12h28
  4. Réponses: 5
    Dernier message: 25/06/2012, 13h04
  5. PrimeFaces Datatable et RowEditListener
    Par allstar dans le forum JSF
    Réponses: 2
    Dernier message: 24/10/2011, 18h03

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