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 confirmé
    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
    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
    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 ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 505
    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 505
    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 confirmé
    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
    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 505
    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 505
    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
    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 ! ...)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    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
    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
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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