01. februar 2007 - 12:14Der er
11 kommentarer og 2 løsninger
Brug af Session i Page_Load
Hej Eksperter
Jeg har en side hvor jeg har en knap, når man trykker på knappen opdateres en session, men jeg skal klikke 2 gange for at indholdes af session vises på min side.
Når man trykker på knappen sættes der en Session["knap"] værdi, og der sker et PostBack.
Men ved hvis jeg prøver at bruge Session["knap"] fra Page_Load, er den altid en gang forsinket.
--------------- Kode ------------------------ private void Page_Load(object sender, System.EventArgs e) { if (IsPostBack) { if (Session["Knap"] != null) { TESTmsg.Text = Session["Knap"].ToString(); } } }
Det er præcis som mikkel sommer siger. Page_Load bliver kaldt før eventuelle click events. Så der sker følgende:
1) Siden loades, Page_Load kaldes og IsPostBack returnerer false (den kommer ikke ned i "if") 2) Der klikkes på knappen. 3) Page_Load kaldes Session["Knap"] er lig med null Testmsg.Text bliver derfor ikke sat 4) Imagebutton1_Click eventen bliver kaldt og sætter Session["Knap"] = 1;
Som du kan se bliver Session["Knap"] først sat efter Page_Load. For at løse det kunne du jo refresh'e siden lige efter du har sat Session["Knap"] variablen i click event'en.
Du kan også definere et event på din aspx side som du så raiser fra din usercontrol derved kan du sætte værdier i kontroller på din aspx side med værdier fra din usercontrols.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.