Perte des controles ajoutés dynamiquement

Signaler
Messages postés
3
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
25 septembre 2006
-
Messages postés
114
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
17 octobre 2006
-
Bonjour,
j'espère me trouver dans la bonne section du forum.

J'ai une question de base, qui semblera certainement très bas niveau pour beaucoup d'entre vous.

J'ai une webform avec une des controles asp (table etc)
Je dois lui ajouter dynamiquement un tableau et un nombre de checkBox et de listBox variables en fonction de l'utilisateur connecté.

Donc je fais un truc du style

if (!maPage.IsPostBack)
{
    maPage.controle.add(monTableau);
    monTableau.EnableViewState= true;
           
    maPage.controle.add(monCheckBox);
    etc.... etc....
}

une fois la page chargée l'utilisateur fait joujou avec les checkBox, les listes, etc.
Puis il clique sur le bouton de validation.
et c'est la qu'arrive mon problème, je ne sais pas comment retrouver mes checkBox, et comment faire pour que le tableau se réaffiche.

J'ai bien réussit à conserver le tableau en le plaçant en design et en le remplissant mais je veux pouvoir le faire dynamiquement;
En gros j'aimerais avoir le moins de choses dans ma webform de base, coté design, et tout gérer coté code behind, C#
(c'est pas évident de passer du monde winForm au monde webForm)

Wouarf j'espère que vous arriverez à me comprendre

Merci d'avance.

cu

2 réponses

Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
2
Salut,

Attention, en webform on est dans un monde déconnecté, donc quand ta requête est finie, les objets créés sont perdus. Donc tu dois les recréer à chaque PostBack pour t'en servir à nouveau.

Dans ton Page_Load, mets toutes les déclarations, instanciations et ajout de contrôles à la page. Et ne mets dans le if(!maPage.IsPostBack) que la partie où tu affectes une valeur par défaut à certains champs (si il y en a une).

Ainsi tes contrôles seront à nouveau instanciés au PostBack, mais cette fois ils contiendront les valeurs choisies par l'utilisateur (et comme il y aura PostBack, le contenu de ton if() ne sera pas exécuté et les contrôles contiendront bien ce qu'il faut )

A++

<hr width="100%" size="2" />Nurgle(Antoine)
Messages postés
114
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
17 octobre 2006

crilun

quand tu cree dynamiquement des controles tu dois leur affecté un ID de maniere a pouvoir les retrouver et donc garder l'etat au post
back de la page j'ai d"aj repondu a une question sur le meme principe ici
vas voir ca t'aideras surement.