Contrôle créés dynamiquement - récupération de valeurs

Résolu
premiumbfd Messages postés 29 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 17 juillet 2011 - 4 mai 2011 à 17:10
premiumbfd Messages postés 29 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 17 juillet 2011 - 5 mai 2011 à 11:12
Bonjour,

Nous sommes face à un problème de postback... Nous créons dynamiquement des Tabs dans un Tabcontainer présent sur la page, dans lesquels nous insérons des contrôles ascx (du coup dynamiquement) et dans lesquels nous créons un repeater.
Tout cela au chargement de la page en !PostBack ou dans le code behind d'un événement de combo.
Dans ce repeater, l'utilisateur doit saisir des valeurs que nous souhaitons récupérer (pour enregistrer en base de données ou peu importe...)
Le problème est que, lorsque nous cliquons sur un bouton présent dans un ascx (créé dynamiquement), nous perdons toutes nos valeurs saisies dans le repeater..
--------
Pas à pas :
- ascx 1 "statique" : contient le tabcontainer. création dynamique des tabs dans la page load en !postback
- tab 1 "dynamique" : contient des contrôles + l'ascx 2
- ascx 2 "dynamique" : contient des contrôles + l'ascx 3
- ascx 3 "dynamique" : contient des contrôles + le repeater
Si on saisit des valeurs dans le repeater, on provoque un rechargement de la page qui remet le tabcontainer de l'ascx 1 à 0. Le viewstate ne change rien.


Suis je claire? Quelqu'un aurait-il déjà rencontré ce problème? Help c'est urgent!
Merci

1 réponse

premiumbfd Messages postés 29 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 17 juillet 2011
5 mai 2011 à 11:12
En mettant les traitements dans les Page_Init, ça fonctionne.
Pour ceux qui chercheraient un peu + de détails sur la résolution de notre problème :
------
* Page asp principale :
Gestion de l'événement PreInit (dans la balise <%@ Page OnPreInit="EvtPreInit">
- initialisation des listes et variables utilisées dans les ascx inclus dans la page

* ascx 1 (statique) :
Celui là fait appel à partir d'un événement à la création dynamique des contrôles
- Page_Init : si !postback, on fait nos initialisations + appel à la méthode de création dynamique (LoadPanel())

* ascx 2 (statique) :
Celui là contient le TabContainer, dont les panels sont créés dynamiquement
- le TabContainer est dans un UpdatePanel :
. UpdateMode="Conditional"
. ChildrenAsTriggers="true"
. EnableViewState="true"
- le TabContainer :
. EnableViewState="true"
- Page_Init :
. si !postback, on fait nos initialisations
. on ne gère pas le postback s'il est à true
- Page_Load :
. on ne gère pas le postback s'il est à false
. si postback, on appelle notre LoadPanel()


Je pense qu'une partie de la gestion des postback est propre à notre application, mais le plus gros de la solution est là.
J'aimerais bien avoir un retour sur ce post si quelqu'un tente cette solution et que ça ne fonctionne pas.
3
Rejoignez-nous