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

ASP.NET Discussion :

Comment faire un formulaire dynamique qui inclut un nb de tables variables ?


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Points : 42
    Points
    42
    Par défaut Comment faire un formulaire dynamique qui inclut un nb de tables variables ?
    Comment faire un formulaire dynamique qui inclut un nb de tables variables ?
    Bonjour,

    Je cherche à faire un formulaire dynamique dont le nombre de Tableaux dépendra d’une variable :

    Du style :
    Si on saisit « 3 », alors 3 Tableaux avec TextBox s’affichent pour pouvoir générer 3 instances de l’objet Personne :


    ------------------------------------FORMULAIRE DYNAMIQUE -----------------------------------
    -----------------------------------------------
    Nombre de personnes : __3___
    ------------------------------------------------

    -------------------------------Tableau 1 --------------------------------------
    -------------------------
    Nom : _________
    -------------------------
    -----------------------------------------------------------------------------------

    -------------------------------Tableau 2 --------------------------------------
    -------------------------
    Nom :_________
    -------------------------
    -----------------------------------------------------------------------------------

    -------------------------------Tableau 3 --------------------------------------
    -------------------------
    Nom :__________
    -------------------------
    -----------------------------------------------------------------------------------

    ------------
    | Valider |
    ------------
    -------------------------------------------------------------------------------------------------------------

    J’ai pensé aux asp :MultiView, mais le nombre de View est fixé à l’avance. Alors que dans mon cas, le nombre de personnes est très variable. De plus, un MultiView consiste en 1 seule vue active, or moi j’en ai besoin qu’ils soient l’un après l’autre.
    De même, le asp :Wizard, est du même style que le MultiView, il remplace une vue par une autre.

    Chaque tableau me générera une nouvelle instance de Personne dans une Liste de Personnes.

    A priori, il faudrait 1 boucle For avec des Tables et des TextBox pour récupérer la saisie de l’utilisateur, mais quoi mettre dedans ??
    Où le coder ? Dans le code-behind ou dans la page web ??

    Merci par avance pour vos idées, n’hésitez pas, car j’ai franchement besoin d’inspiration. …

    David.

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    Un repeater semble adapté à ton problème

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Points : 42
    Points
    42
    Par défaut Comment préciser le Nombre de Tableaux à afficher ?
    A priori, d'après ce que j'en ai vu, les Repeaters sont du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    <asp:TextBox runat="server" ID="txtNombre" Text=""></asp:TextBox>
     
    <asp:Repeater runat="server" ID="repRepeteur1" DataSource="<%#??Int32.Parse(txtNombre.Text)?? %>">
       <ItemTemplate>
          <asp:Label runat="server" Text="<%#Container.DataItem %></asp:Label>
          <asp:TextBox runat="server" Text=""></asp:TextBox>
       </ItemTemplate>
    </asp:Repeater>
    Comment préciser que le nombre de Tables à générer la valeur du TextBox : "txtNombre" ?

    David.

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu veux que ca boucle x fois ? mais avec quel contenu ?
    il faut en tous les cas le bindé avec une source de donnée, qui implémente IEnumerable

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Points : 42
    Points
    42
    Par défaut Bouclage : Liste d'objets Personne
    En fait, (pour simplifier),
    j'ai une Liste<Personne> où 1 Personne a 1 Nom et 1 Profession.
    Mon Reapeter Binde sur la Liste pour afficher chaque Personne dans 1 TextBox que l'utilisateur devra renseigner.
    Il Binde aussi sur 1 fonction GetListeProfessions() pour renseigner 1 DropDownList.

    Au niveau affichage, c'est finalement OK. ouf

    Mon Pb est de récupérer les valeurs...
    Dans quel méthode ? Page_Load() ? PreRender()?

    David.

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    si tu as un click qui valide le formulaire, ca peut se faire dans cet evenement

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Points : 42
    Points
    42
    Par défaut Super ça marche, mais reste 1 Pb ...
    Mon but final consiste en une imbrication de Repeaters,

    Je cherche à faire des Tables "Dynamiques", c'est-à-dire, dont le nombre de champs demandés s'étoffent au fur à mesure que l'utilisateur entre les infos et qu'il appuie sur le Bouton Valider.

    Sur le net, il y a des "Nested Repeaters" mais avec des DataSets, or moi, je dois utiliser ma Liste de Personnes où 1 Personne, selon son Métier,
    aura 1 ou plusieurs Adresses.

    j'ai essayé avec le "OnItemDataBound="fonction1"", sans succès.


    Exemple :

    AVANT :
    ---------------------Formulaire avant Post-------------------------

    ---------------Table 1----------------------
    Nom : ____Jean___
    Metier: ___Agriculteur__
    --------------------------------------------

    ---------------Table 2----------------------
    Nom : ____Denis___
    Metier: ___Facteur__
    --------------------------------------------
    ---------------------------------------------------------------------


    APRES :
    ---------------------Formulaire apres Post-------------------------

    ---------------Table 1----------------------
    Nom : _Jean______
    Metier: _Agriculteur_
    Adresse: __________
    --------------------------------------------

    ---------------Table 2----------------------
    Nom : _Denis___
    Metier: _VRP__
    Adresse 1: ________
    Adresse 2: ________
    Adresse 3: ________
    --------------------------------------------
    ---------------------------------------------------------------------

    Merci pour vos indices.

    David.

  8. #8
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu peux faire par exemple 3 champs et les masquer en fonction du métier, dans le ItemCreated par exemple

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Points : 42
    Points
    42
    Par défaut Pas possible dans mon cas, mais solution trouvée
    En fait,
    Je ne connais pas à l'avance le nombre de TextBox à ajouter.
    Ce nombre depend d'1 Liste d'objets.

    Finalement, j'ai utilisé un "Nested Repeater" (répéteur imbriqué), que j'ai rempli dans la fonction OnItemBound du Repeater Père.

    Merci.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/02/2013, 18h36
  2. Réponses: 8
    Dernier message: 26/03/2010, 08h16
  3. Comment faire une connexion dynamique à une base avec ADO?
    Par Borisam dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/03/2006, 14h22
  4. Comment faire ??? Sous formulaire ? Autre ?
    Par Zotto dans le forum IHM
    Réponses: 11
    Dernier message: 14/06/2005, 15h53
  5. [VB.NET] [PPC] Comment faire un formulaire sur pls pages?
    Par papy27 dans le forum Windows Mobile
    Réponses: 10
    Dernier message: 03/06/2004, 17h23

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