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.
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:
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.
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.:D ouf
Mon Pb est de récupérer les valeurs...
Dans quel méthode ? Page_Load() ? PreRender()?
David.
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 : :D
---------------------Formulaire avant Post-------------------------
---------------Table 1----------------------
Nom : ____Jean___
Metier: ___Agriculteur__
--------------------------------------------
---------------Table 2----------------------
Nom : ____Denis___
Metier: ___Facteur__
--------------------------------------------
---------------------------------------------------------------------
APRES : 8O
---------------------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.
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. :D
Merci.