problemmer med session
hej eksperterjeg har lavet en menu som folder ud når du trykker på den og lister X antal underlinks, men der sker det at når jeg trykker på et underlink så folder menu'en sig sammen. Jeg tror godt jeg ved hvad problemmet er, og det er at efter et postback så ved den ikke hvilket panel den skal showe..
måden jeg har lavet det på er..
jeg har en masterpage som indenholder en usercontrol med min menu i der har jeg nogle linkbuttons som show hider et panel
til det bruger jeg denne kode:
protected void KnapPrasentation_Click(object sender, EventArgs e)
{
Panel[] panelHider = { PanelPrasentation, PanelOplysninger, PanelService };
HideAll(panelHider);
PanelPrasentation.Visible = true;
}
som i kan se kalder jeg en anden fuktion kaldet panelHider for at lukke alle mine paneler og så åbne det panel som der er "trykket" på
private void HideAll(Panel[] panels)
{
for (int i = 0; i < panels.Length; i++)
((Panel)panels[i]).Visible = false;
}
sådan ser den ud.
jeg har rodet med at bruge en session til at gemme hvilket panel som er vist, der har jeg blot tilføjet denne line til min protected void KnapPrasentation_Click....
Session["menuitem"] = 0;
( 0 betyder at ingen panels er åbne " 3 af mine knapper har ikke underlinks" 1 betyder at første panel er åben osv. )
i page_load kalder jeg så denne funktion
public void showMenuItem()
{
PanelPrasentation.Visible = PanelService.Visible = PanelOplysninger.Visible = false;
switch ((int)Session["menuitem"])
{
case 1: PanelPrasentation.Visible = true; break;
case 2: PanelOplysninger.Visible = true; break;
case 3: PanelService.Visible = true; break;
}
}
dette virker faktisk også (det løser mit problem med at den ikke folder sammen) men problemet er at jeg er nødtil at trykke 2 gange på de knapper som ikke har underlinks for at den hider det panel som var vist.. jeg har endag tilføjet sessionen til min global.asax fil under session_start.
håber i forstår min forklaring :)
hvad gør jeg galt ? skal man evt bruge viewstate istedet for session og hvis ja hvordan ?
