Recuperer des controls TextBox qui ont ete crees dynamiquement

Résolu
cedricperes Messages postés 38 Date d'inscription jeudi 3 mai 2007 Statut Membre Dernière intervention 18 décembre 2008 - 6 juin 2007 à 18:07
cedricperes Messages postés 38 Date d'inscription jeudi 3 mai 2007 Statut Membre Dernière intervention 18 décembre 2008 - 8 juin 2007 à 09:40
Bonjour

   Je suis en train de realiser une appli en c# qui permet de creer des questionnaireset de les faire remplir par des utilisateurs.
Pour afficher ces questionnaires, je cree dynamiquement des objets TextBox dans lesquels les utilisateurs saisiront les reponses aux questions.
   Cependant, j'ai un probleme, les controls que j'ai cree dynamiquement n'existent pas dans ma Form. Je comprends que les controls que j'ai ajoute avec Form.Controls.Add n'existent que dans la methode qui cree le TextBox.
   Comment faut-il s'y prendre pour que ces controls aient une existence en dehors de la methode ?

Cedric

2 réponses

cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
7 juin 2007 à 10:34
Salut,

Utilise un PlaceHolder ! Il est fait pour ça...
Et tu fais MonPlaceHolder.Controls.Add(...) dans le Page_Init ou plus tôt dans le cycle de chargement de la page.
Evidemment, si tu veux pouvoir accéder à tes TextBox lors d'un PostBack (clique sur un bouton, etc...), elles doivent être recréées aussi au PostBack (pas uniquement lors du premier chargement de la page en gros).

Ensuite tu peux trouver un control particulier en faisant MonPlaceHolder.FindControl() ou les parcourir tous en faisant un For Each sur MonPlaceHolder.Controls...

A++

<hr width="100%" size="2" />Nurgle (Antoine) - MSP
3
cedricperes Messages postés 38 Date d'inscription jeudi 3 mai 2007 Statut Membre Dernière intervention 18 décembre 2008
8 juin 2007 à 09:40
Merci
   J'ai mis tous mes controls dynamiques dans le PlaceHolder, je cree ces controls a partir du Page_Init et j'arrive a tout recuperer. c'est super, merci

Cedric
0
Rejoignez-nous