Bonjour
Avant de commencer, j'ai déjà pris connaissance de ce tutoriel: http://nico-pyright.developpez.com/t...prendreaspnet/
et j'ai trouvé cet article: http://www.codeproject.com/KB/user-c...DynamicUC.aspx (malheureusement, avec code en VB...)

Petite explication de ce que je cherche à faire avec un exemple:
j'ai un formulaire de profil en ligne (en gros) avec une partie compétences.
Il est possible d'ajouter autant de compétences que possible...
Chaque compétence est sélectionné à travers un DropDownList, un champ texte permet quant à lui de commenter cette selection.

En gros, on aurais ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<asp:DropDownList runat="server" id="myDDL" /><asp:Textbox runat="server" id="myTXT" /><asp:button runat="server" id="btnRemove" Text="remove" />
Tout ce code est contenu dans un UserControl que l'on va apeller ucItem. Vous aurez compris que l'appui sur le bouton Remove doit supprimer l'usercontrol de la page.

Par mesure de simplification... puis pour pouvoir réutiliser le composant, j'ai un autre UserControl contenant un PlaceHolder et un bouton Ajouter.
Ce sera mon container pour mes ucItem.


Je cherche donc à gérer:
- L'ajout dynamique d'un ucItem via l'appui du bouton Ajout du container
- La suppression dynamique d'un ucItem pour lequel j'ai appuyé sur le bouton Remove
- La récupération de toutes les valeurs de mes ucItem (SelectedValue et Text)
- (Le stockage de ses données de manière simple)
- L'initialisation de mon container (pour le nombre d'ucItem) et les valeurs des ucItem pour l'édition d'un profil déjà existant.
- Bien sur, il faut passer un DataSource pour mes DropDownList


Je poste ici pour avoir un avis sur la meilleure façon de faire (qui soit sécuritaire, performante et facile à maintenir) pour éviter de partir sur une solution "tirée par les cheveux".

Dans mon ucContainer, j'ai pensé aux propriétés et méthodes:
- DataSource : pour la DataSource utilisé par les DropDownList
- GetValues : pour récupérer les valeurs de tout les ucItem > je ne sais pas encore quel type de donné retourner...
- SetValues : même chose que GetValues mais pour initialiser tout les champs avec les valeurs passé en paramètre...

Dans mon ucItem, il y aurait également:
- DataSource : pour passer le DataSource dans le DropDownList
- SelectedValue : pour récupérer / initialiser la valeur sélectionné dans le DropDownList
- ContentValue : pour récupérer / initialiser la valeur contenu dans le TextBox

+ à priori un handler pour le click sur le bouton Remove à gérer dans le container.


Et là... je suis un peu perdu sur la manière de faire... tout est dynamique, donc il faut pouvoir gérer et s'assurer de tout retrouver à un PostBack.
Pour la suppression... je vais relire les articles dont j'ai posté les liens au début du message. Car actuellement, j'ai pas idée sur comment récupérer l'id de l'ucItem à supprimer...

Merci.