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 - Rafraîchissement sur DataTable - RowEditing


Sujet :

JSF Java

  1. #1
    Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 116
    Points : 63
    Points
    63
    Par défaut Primefaces - Rafraîchissement sur DataTable - RowEditing
    Bonjour à tous,
    Je rencontre un problème avec un objet Primefaces.
    Le DataTable - Row Editing (http://www.primefaces.org/showcase/u...RowEditing.jsf) permet l'édition des cellules en direct sur la page.

    Mon problème est le suivant :
    J'ai un tableau avec pour chaque ligne des véhicules différents (Immatriculation, Date, prix....). Je cherche à pouvoir faire en sorte de supprimer un véhicule depuis ce tableau grâce au RowEditing, j'y arrive, mais une fois ce dernier supprimé de ma BD, je n'arrive pas à instantanément le faire disparaître du DataTable, sûrement un problème de rafraîchissement mais lequel ?

    Mon DataTable RowEditing :
    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
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
     
    pou:dataTable id="listVehiculeTable" value="#{GestionClient.listVehicule}"  var="listeVehicule" styleClass="dataTable" editable="true"  paginator="true" resizableColumns="true"  rows="10" rowsPerPageTemplate="5,10,15" sortMode="multiple">
     
                                <pou:ajax event="rowEdit" listener="#{GestionClient.editVehicule}" update=":form:messages, listVehiculeTable"/>
                                <pou:ajax event="rowEditCancel" listener="#{GestionClient.removeVehicule}" update=":form:messages, listVehiculeTable"/>
     
                                <pou:column headerText="Immat." filterBy="immatriculation">
                                    <h:outputText value="#{listeVehicule.immatriculation}"/>
                                </pou:column>
     
                                <pou:column headerText="Marque" filterBy="marque">
                                    <pou:cellEditor>
                                         <f:facet name="output">
                                            <h:outputText value="#{listeVehicule.marque}"/>
                                        </f:facet>
                                        <f:facet name="input">
                                            <pou:inputText value="#{listeVehicule.marque}" style="width: 100%;"/>
                                        </f:facet>
                                    </pou:cellEditor>
                                </pou:column>
     
                                <pou:column headerText="Modele" filterBy="modele">
                                    <pou:cellEditor>
                                        <f:facet name="output">
                                            <h:outputText value="#{listeVehicule.modele}"/>
                                        </f:facet>
                                        <f:facet name="input">
                                            <pou:inputText value="#{listeVehicule.modele}" style="width: 100%;"/>
                                        </f:facet>
                                    </pou:cellEditor>
                                </pou:column>
     
                                <pou:column headerText="Version" filterBy="version">
                                    <pou:cellEditor>
                                        <f:facet name="output">
                                           <h:outputText value="#{listeVehicule.version}"/>
                                        </f:facet>
                                        <f:facet name="input">
                                            <pou:inputText value="#{listeVehicule.version}" style="width: 100%;"/>
                                        </f:facet>
                                    </pou:cellEditor>
                                </pou:column>
     
                                <pou:column headerText="KM">
                                    <pou:cellEditor>
                                        <f:facet name="output">
                                           <h:outputText value="#{listeVehicule.kilometrage}"/>
                                        </f:facet>
                                        <f:facet name="input">
                                            <pou:inputText value="#{listeVehicule.kilometrage}" style="width: 100%;"/>
                                        </f:facet>
                                    </pou:cellEditor>
                                </pou:column>
     
                                <pou:column headerText="CV" filterBy="puissance">
                                    <pou:cellEditor>
                                        <f:facet name="output">
                                           <h:outputText value="#{listeVehicule.puissance} cv"/>
                                        </f:facet>
                                        <f:facet name="input">
                                            <pou:inputText value="#{listeVehicule.puissance}" style="width: 100%;"/>
                                        </f:facet>
                                    </pou:cellEditor>
                                </pou:column>
     
                                <pou:column headerText="Energie" filterBy="energie">
                                    <pou:cellEditor>
                                        <f:facet name="output">
                                           <h:outputText value="#{listeVehicule.energie}"/>
                                        </f:facet>
                                        <f:facet name="input">
                                            <pou:inputText value="#{listeVehicule.energie}" style="width: 100%;"/>
                                        </f:facet>
                                    </pou:cellEditor>
                                </pou:column>
     
                                <pou:column headerText="PV Depot">
                                    <pou:cellEditor>
                                        <f:facet name="output">
                                           <h:outputText value="#{listeVehicule.pv_depot} €"/>
                                        </f:facet>
                                        <f:facet name="input">
                                            <pou:inputText value="#{listeVehicule.pv_depot}" style="width: 100%;"/>
                                        </f:facet>
                                    </pou:cellEditor>
                                </pou:column>
     
                                <pou:column headerText="MEC">
                                    <pou:cellEditor>
                                        <f:facet name="output">
                                           <h:outputText value="#{listeVehicule.date_mec_bonne}"/>
                                        </f:facet>
                                        <f:facet name="input">
                                            <pou:inputText value="#{listeVehicule.date_mec_bonne}" style="width: 100%;"/>
                                        </f:facet>
                                    </pou:cellEditor>
                                </pou:column>
     
                                <pou:column headerText="Edition">
                                    <pou:rowEditor />
                                </pou:column>
     
                                <f:facet name="footer">
                                    Total : #{GestionClient.nbVehicule} véhicules enregistrés.
                                </f:facet>
     
                            </pou:dataTable>
    Et ma fonction qui supprime :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public void removeVehicule(RowEditEvent event) throws IOException {
            FacesMessage msg = new FacesMessage("Véhicule supprimé", ((Voiture) event.getObject()).getImmatriculation());
            //Requete sql de suppression du véhicule
            String sql = "DELETE FROM `voiture` WHERE `immatriculation` = '" + ((Voiture) event.getObject()).getImmatriculation() + "'";
            System.out.println("Requete sql suppresion vehicule : " + sql);
            try {
                Statement state = this.bdd.createStatement();
                state.executeUpdate(sql);
            } catch (SQLException e) {
                System.out.println("Erreur suppression vehicule: " + e.getMessage());
            }
            FacesContext.getCurrentInstance().addMessage(null, msg);
        }
    D'avance merci de votre aide

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Tu détournes la fonction d'annulation de l'édition pour supprimer ton enregistrement ?
    Comment va faire l'utilisateur pour invalider les modifications ?

  3. #3
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 504
    Points : 7 840
    Points
    7 840
    Par défaut
    Bonjour,

    Le petit "x" est conçu pour annuler les modifications effectuées, pour supprimer l'objet de la table tu devrais t'inspirer de l'exemple DataTable - Row Selection, en modifiant l'action du bouton "View".

  4. #4
    Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 116
    Points : 63
    Points
    63
    Par défaut
    Bonjour,
    Merci à tous pour vos indications.
    En effet je ne vais pas m'amuser à modifier l'annulation des modifications, je l'avais mal interprété.

    Une question me reste tout de même, comment peut-on lancer un rafraîchissement de page lorsque l'on modifie un élément de cette dernière ?

    Encore merci !

  5. #5
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 504
    Points : 7 840
    Points
    7 840
    Par défaut
    Citation Envoyé par Fred30 Voir le message
    Une question me reste tout de même, comment peut-on lancer un rafraîchissement de page lorsque l'on modifie un élément de cette dernière ?
    Bonjour,

    Il s'agit de quel type d'élément (un composant PrimeFaces, autre chose)?

    Si c'est pour mettre à jour la table après la suppression d'une ligne: essaie d'ajouter dans les attributs du bouton qui effectue la suppression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update=":idDuFormContenantLaTable:idDeLaTable,:idDuFormContenantLaTable"
    Si c'est pour autre chose: merci de revenir avec plus de détails.

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Avec Primefaces, tu as également des valeurs spéciales pour l'attribut "update" :
    @this (le composant qui émet la demande)
    @parent (le parent du composant qui émet la demande)
    @form (le formulaire du composant émettant la demande)
    @all (tout le document)
    @none (devine ! ...)

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Une autre solution, à la fin de ta méthode removeVehicule(), remet a jour ton attribut listVehicule !
    Comme ça ta table contiendra les bonnes données et la ligne supprimée n’apparaîtra plus.

  8. #8
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par pshiit Voir le message
    Une autre solution, à la fin de ta méthode removeVehicule(), remet a jour ton attribut listVehicule !
    Ben non, elle ne le sera pas... pas tant que le composant ne sera pas rafraichi

Discussions similaires

  1. Filtrer des combo sur datatable
    Par olibara dans le forum C#
    Réponses: 9
    Dernier message: 22/09/2008, 15h57
  2. [VB.NET] fonction ISNULL sur dataTable
    Par Pfeffer dans le forum Accès aux données
    Réponses: 5
    Dernier message: 23/04/2008, 16h04
  3. requete sur datatable
    Par crapouye dans le forum VB.NET
    Réponses: 8
    Dernier message: 13/12/2007, 15h00
  4. ComboBox.DataSource sur DataTable perso
    Par stephane.julien dans le forum C#
    Réponses: 3
    Dernier message: 30/10/2007, 10h11
  5. Rafraîchissement sur un endroit de la fenêtre
    Par Mynautor dans le forum OpenGL
    Réponses: 5
    Dernier message: 07/06/2004, 14h47

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