PB avec les place holder et les menu [Résolu]

Signaler
Messages postés
17
Date d'inscription
mardi 4 juillet 2006
Statut
Membre
Dernière intervention
4 mai 2010
-
Messages postés
17
Date d'inscription
mardi 4 juillet 2006
Statut
Membre
Dernière intervention
4 mai 2010
-
Bonjour à tous!
J'ai un GROS problème que je n'arrive pas a résoudre tout seul:

Voici le contexte:
J'ai une page (projet.aspx) contenue dans une masterpage.
Cette page (projet.aspx) contient un menu et 4 lcontent place holder. Au démarrage,La page n'affiche que le menu.
Je voudrais pouvoir selectionner le placeholder à afficher en fonction de l'item selectionné dans le menu.
J'y arrive avec ce code:

___________________
protected void Menu2_MenuItemClick(object sender, MenuEventArgs e)
{

//= Convert.ToString(Session["MonMenu"]);

Session["MonMenu"] = Menu2.SelectedItem.Value;

if (Convert.ToString(Session["MonMenu"]) == "MesProjets")
{
PlaceHolder1.Visible = true;
PlaceHolder2.Visible = false;
PlaceHolder3.Visible = false;
PlaceHolder4.Visible = false;
PlaceHolder1.Controls.Clear();

Control cl = LoadControl("CUMesProjets.ascx");
PlaceHolder1.Controls.Clear();
PlaceHolder1.Controls.Add(cl);
//frameprojet.Attributes.Add("src", "MesProjets.aspx");
}
else
{.............

__________________

Seulement voila, losque que je fait une manipulation (par exemple lorsque je choisis une ligne d'un datagrid contenu dans CUMesProjets.ascx(=contentplace1) (donc valid du formulaire), tout ce recharge et je n'ai plus de content place holder de selectionné.
J'ai essayé de mettre une variable pour connaitre l'item cliqué du menu et en fonction de cela, afficher dans le onload, le bon place holder mais comme l'evenement Onload de ma page est effectuée avant le menu_onclick, j'ai toujour un décalage, c-a-d que je dois cliquer deux fois pour voir afficher ce place holder voulu.

La moindre idée sera la bienvenue.

Merci d'avance!

2 réponses

Messages postés
9
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
15 juillet 2009

Utilise un Update Panel en UpdateMode=Conditional dans ton ascx encadrant tes différentes manipulations, tu réaliseras ainsi un AsyncPostback, ne rechargeant que ton ascx et évitant ton problème. En plus tu y gagneras en performance.

Je te conseille aussi l'utilisation d'un MultiView plutot que de 4 Place Holder, il est fait pour ça :)


Bastien Besson
Messages postés
17
Date d'inscription
mardi 4 juillet 2006
Statut
Membre
Dernière intervention
4 mai 2010

Merci pour ta réponse. Elle fonctionne mais j'ai eu d'autre problème liés au rafraichissement de mes requette.
J'ai donc opté pour la methode lourde: J'ai créé une page pour chaque partie de mon menu et ainsi abandonné les ascx.
Chaque Placeholder est donc devenu une page.