Code d'un bouton d'un usercontrol exécuté qu'au 2ème clic

ChrisBzh56 Messages postés 13 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 25 septembre 2008 - 24 sept. 2008 à 16:55
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 - 25 sept. 2008 à 19:16
Salut,

J'ai un problème qui m'a gâché une bonne après-midi de boulot à me prendre la tête.

Voila mon problème :
Je travaille sur un projet ASP.net (+c#), dans une de mes pages je charge des usercontrol dynamiquement (il en apparait 1,2 ou 3 selon un critère choisi)

Le nombre de usercontrol apparait sans problème, mais dans ce usercontrol il y a un bouton et lorsque je clique dessus, rien ne se passe et si je reclique dessus le code du bouton est exécuté !

dans mon page_init() je charge mes usercontrols (ainsi que dans mon bouton qui permet d'afficher les usercontrols)

le code (simplifié)

protected void Page_Init(object sender, EventArgs e)
{
if (Session["MaVariable"] != null)
{
MaFonctionQuiChargeEtInitialiseMonUserControl(Session["MaVariable"]);
}
}

protected void BtnAfficher_Click(object sender, EventArgs e)
{
Session["MaVariable"] = UneDropDownList.SelectedValue.toString();
MaFonctionQuiChargeEtInitialiseMonUserControl(Session["MaVariable"]);
}

Me manque t-il quelque chose ?

3 réponses

yassinebennani Messages postés 249 Date d'inscription samedi 13 octobre 2007 Statut Membre Dernière intervention 2 mai 2014
25 sept. 2008 à 00:49
Bonjour

D'abord je pense que tu dois précéder le traitement de ton évenement page init par une condition de premier chargement de la page (if(!this.isPostBack traitement) ensuite le chargement des usercontroles il vaut mieu le faire dans l'évenement page_init et non dans lévenement du button sinon tu auras des résultats innatendu pour comprendre mieu il faut comprendre le cycle de vie d'une page asp.net sinon tu peux faire un débogage pour suivre le traitement jusqu'au bout.
 
Les fins justifient les moyens_________________________________________________
Yassine BENNANI - Ingénieur en génie logiciel & multimédia (Consultant SI)
0
ChrisBzh56 Messages postés 13 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 25 septembre 2008
25 sept. 2008 à 09:28
Merci pour ta réponse,

Si je met une condition
if(!this.IsPostBack)
{
[traitement...]
}
dans mon page_init, le traitement n'est logiquement jamais exécuté (sauf au 1er chargement) donc impossible de rechargé mes usercontrols

Autre problème : C'est lorsque je clique sur mon bouton (qui charge les usercontrols) que j'initialise une variable de session, hors si je ne charge pas mes usercontrols dans l'event de mon bouton, mes usercontrols ne seront chargé qu'au prochain page_init (cad lors d'un nouveau clic sur ce bouton)...
0
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
25 sept. 2008 à 19:16
Bonjour,

Tu peux peut-être essayer de tester lors de ton page_init si c'est le button en question qui est à l'origine ou non de l'envoi, en vérifiant si request.form(tonbutton.ID) est null ou non.
Dans ce cas, tu pourrais tout faire lors du page_init.

GGtry
0
Rejoignez-nous