Contrôle créés dynamiquement - récupération de valeurs [Résolu]

Messages postés
29
Date d'inscription
lundi 7 novembre 2005
Dernière intervention
17 juillet 2011
- - Dernière réponse : premiumbfd
Messages postés
29
Date d'inscription
lundi 7 novembre 2005
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
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
29
Date d'inscription
lundi 7 novembre 2005
Dernière intervention
17 juillet 2011
3
Merci
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 105 internautes ce mois-ci

Commenter la réponse de premiumbfd

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.