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 :

Utilisation de zones de saisie dans dataTable (<h:dataTable>+<h:inputText>)


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Profil pro
    Developpeur
    Inscrit en
    Avril 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Avril 2004
    Messages : 160
    Par défaut Utilisation de zones de saisie dans dataTable (<h:dataTable>+<h:inputText>)
    Bonjour;

    Dans une page jsp, je doit créer une entité avec une liste d'éléments d'une autre entité: pour cela j'affiche dans ma page jsp les zones de saisies des informations propre à l'entité principal + un tableau vide de 10 ligne pour pouvoir remplir ma liste (pour l'affichage c'est bon).

    pour le tableau j'utilise ListDataModel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <h:dataTable
        id="mTable"
        value="#{ListeEntiteBean.listeData}"
        .
        .
        >
     
    </h:dataTable>
    avec listeData est de type ListDataModel.

    ma question est comment je peux manipuler une fois valider les elements saisies??? il n'a ya pas de methodes pour recupérer les elements de ListDataModel???.

    pour récuperer par exemple une ligne selectionner , je sais faire en utilisant HtmlDataTable. Mais pour récuperer tous les element de la liste avec ListDataModel, je ne vois pas comment?

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 154
    Par défaut
    J'ai déjà eu le soucis.

    Tu aurais cherché un peu tu aurais surement trouvé la solution sur le net... enfin je vais ménager tes efforts.

    Voici ta solution : http://java.developpez.com/faq/jsf/?...le_active_row1

  3. #3
    Membre confirmé
    Profil pro
    Developpeur
    Inscrit en
    Avril 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Avril 2004
    Messages : 160
    Par défaut
    Citation Envoyé par Fafhrd Voir le message
    J'ai déjà eu le soucis.

    Tu aurais cherché un peu tu aurais surement trouvé la solution sur le net... enfin je vais ménager tes efforts.

    Voici ta solution : http://java.developpez.com/faq/jsf/?...le_active_row1
    ça c'est pour récuperer la ligne active d'une datatable, moi je veux récuperer toute la liste (tous les lignes de datatable) une fois cliquer sur un bouton (créer par exemple).

    Comme Pour alimenter un DataModel avec une liste (List), on procède comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataModel.setWrappedData(uneListeQuelquonque);
    Je veux un truc de ce genre mais pour récuperer la liste contenu dans mon DataModel.

    Comme DataModel est une interface tout comme List tandis que ListDataModel est une implémentation tout comme ArrayList. On peut donc parcourir les elements de ListDataModel. Comment???? Ah oui methode getWrappedData() qui retourne un object que je cast en liste correspendante..
    je vais tenter de faire comme ça.

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 154
    Par défaut
    Bah, d'où tu initialises ton dataModel ? parce que moi en général j'initialise avec une liste... donc si tu veux la récupérer, fais en une variable globale et récupère là avec un accesseur tout simplement.

    Edit : autant pour moi, tu édites toutes les valeurs de ton tableau... Je n'ai jamais tenté ça. Tu peux essayer avec la méthode du DataModel. Tu me diras si ça marche .

  5. #5
    Membre confirmé
    Profil pro
    Developpeur
    Inscrit en
    Avril 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Avril 2004
    Messages : 160
    Par défaut
    Citation Envoyé par Fafhrd Voir le message
    Bah, d'où tu initialises ton dataModel ? parce que moi en général j'initialise avec une liste... donc si tu veux la récupérer, fais en une variable globale et récupère là avec un accesseur tout simplement.
    Moi, en fait j'affiche mon datamodel avec une liste d'un autre objet (à partir dequel je fait la duplication) ou simplement je l'affiche avec une liste initialisée avec des lignes vides(si je cree mon entité sans duplication), comme ça je saisies mes valeurs directement sur la page dans ma liste. ou je modfie si c'était une duplication.

    Edit : autant pour moi, tu édites toutes les valeurs de ton tableau... Je n'ai jamais tenté ça. Tu peux essayer avec la méthode du DataModel. Tu me diras si ça marche .
    Oui exact, je saisie dans toutes les lignes et je doit valider le tous d'un coup.
    Pire que ça, si je doit saisir + de 10, je doit faire une pagination (avant de creer concretement mon entité avec sa liste) ....

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 154
    Par défaut
    Au pire, tu fais une validation champs par champs. Lorsque l'utilisateur a entré la valeur, tu fais une action de mise à jour... c'est plus lourd mais ça ça marchera.

    Si néanmoins tu optes pour ta solution et que tu trouves ta solution, ça m'intéressera de connaitre la solution. C'est le genre de cas qui doit pouvoir se produire quand on veut faire un long formulaire de saisie dynamique.

  7. #7
    Membre confirmé
    Profil pro
    Developpeur
    Inscrit en
    Avril 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Avril 2004
    Messages : 160
    Par défaut
    Citation Envoyé par Fafhrd Voir le message
    Au pire, tu fais une validation champs par champs. Lorsque l'utilisateur a entré la valeur, tu fais une action de mise à jour... c'est plus lourd mais ça ça marchera.

    Si néanmoins tu optes pour ta solution et que tu trouves ta solution, ça m'intéressera de connaitre la solution. C'est le genre de cas qui doit pouvoir se produire quand on veut faire un long formulaire de saisie dynamique.
    Sorry pour ce retard...
    EN fait j'ai finalement utiliser une liste normal au lieu de ListDataModel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:dataTable
       id="entities"
       value="#{entitePrincipalBean.entities}"
    et dans mon controller je recupére ma liste entities et je fais ce q je veux avec .

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

Discussions similaires

  1. Création dynamique de zones de saisie dans un tableau ?
    Par Zebulon777 dans le forum jQuery
    Réponses: 60
    Dernier message: 03/09/2014, 15h25
  2. Zone de saisie dans un MessageDlg?
    Par magicstar dans le forum Débuter
    Réponses: 3
    Dernier message: 20/10/2009, 23h18
  3. Probleme de zone de saisie dans firefox
    Par samourai_alex dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 17/07/2006, 00h08
  4. Zone de saisie dans une listbox
    Par kurul1 dans le forum C++Builder
    Réponses: 8
    Dernier message: 14/03/2006, 11h54

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