Avatar billede tobiha Nybegynder
28. januar 2009 - 14:56 Der er 9 kommentarer og
1 løsning

MasterPage og postback

Jeg har en string der bliver gemt i en session variabel når jeg klikker på en imagebutton på en side(side1). Denne imagebutton linker til en anden side (side2). Denne side har en masterpage bag sig.

Meningnen var at hente strengen når masterpage'en loades. Men åbenbart loades masterpage'en først efter side1 er blevet loaded?

Er det rigtigt og hvad gør man så i stedet for?
Avatar billede aaberg Nybegynder
28. januar 2009 - 15:06 #1
Selvom siden loader før din masterpage, kan du vel bruge din Sessions variabel fra din Masterpage!

Forklar hvad der er du prøver at opnå, så er det lidt nemmere at hjælpe :-)
Avatar billede tobiha Nybegynder
28. januar 2009 - 15:09 #2
Problemet er at det der står i session variablen skal skrives på side2 når denne loader. Teksten kommer frem hvis jeg refresher siden...
Avatar billede aaberg Nybegynder
28. januar 2009 - 15:42 #3
Kan jeg se lidt af koden? Ellers er svært at sige, hvad du gør forkert.
Avatar billede kalp Novice
28. januar 2009 - 16:02 #4
Du skriver at Side2 benytter masterpage og ikke Side1.

Ud fra din beskrivelse har dit problem intet med MasterPage at gøre.
Avatar billede kalp Novice
28. januar 2009 - 16:06 #5
Hvis vi antager du har en label på Side2 som du vil assigne værdien fra din session bør du kunne skrive følgende først i din Page_load på Side2. (puuhhh.. den sætning skulle jeg have delt op).

if(Session["DinSession"] != null)
label.Text = Session["DinSession"].ToString();

Skriv det først i din page_load uden om alle dine betingelser osv.
Hvis det virker hvilket det skal så kig på hvad du har sat af betingelser i din kode:)
Avatar billede tobiha Nybegynder
29. januar 2009 - 12:23 #6
Jeg prøver lige at forklare mig lidt bedre:

Default.aspx (side1) indeholder en række imagebuttons. Hver af disse linker til side 2.

Side 2 benytter sig af MasterPage. Alt efter hvilken imagebutton du trykker på skal indholdet på MasterPagen være forskelligt.

Derfor har hver imagebutton et commandargument defineret. Når man klikker på en imagebutton lægges dette commandargument over i en session:
Session["ca"] = ((ImageButton)sender).CommandArgument; 

MasterPage har i Page_load følgende kode:
String ca = (string)Session["ca"];

og

switch (ca)
  case "button1":
      Session["ShortName"] = "BlaBlaBla";
  break;
 
  case "button2":
      Session["ShortName"] = "Bla2Bla2Bla2";
  break;

På side2 skal den nye Session["ShortName"] så benyttes på eksempelvis en label.

Den viser det bare ikke på side2 før man refresher siden...
Avatar billede kalp Novice
29. januar 2009 - 13:58 #7
jeg sidder ikke lige med udviklingsværktøjet i hånden til og teste, men forsøg lige følgende på din side2.

  protected override void OnPreRender(EventArgs e) {
            base.OnPreRender(e);
            dinLabel.Text = Session["ShortName"].ToString();
        }
Avatar billede tobiha Nybegynder
29. januar 2009 - 14:28 #8
hmm...ser ud til at virker...det bliver kaldt før page_load så. super, takker. smid et svar.
Avatar billede kalp Novice
29. januar 2009 - 14:31 #9
nej det bliver kaldt efter page_load.
det er det sidste step før din side bliver rendered;)
Avatar billede tobiha Nybegynder
29. januar 2009 - 14:33 #10
nå ok - troede ikke der var et skridt der :) tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester