Avatar billede idiotbarn Nybegynder
10. februar 2006 - 19:00 Der er 16 kommentarer og
2 løsninger

Opdatere session lige inden postback

Hej Eksperter...
Jeg sidder med et lille problem. Jeg har en Bruger klasse til at ligge i en session som indeholder en masse variabler. Jeg har nu en usercontrol som har brug for at nulstille en variabel i Brugerklassen INDEN siden loades efter et postback. Kan det lade sig gøre? Så vidt jeg kan se, vil siden altid loade inden controllen, også ved postback?
Avatar billede dr_chaos Nybegynder
10. februar 2006 - 19:32 #1
dukan prøve at override preinit og se om du kan fange noget der.
Avatar billede mikkel_sommer Nybegynder
10. februar 2006 - 20:48 #2
Du kan prøve at sætte den her metode ind efter i din klasse:

private void Page_PreRender(object sender, System.EventArgs e)
{
  BrugerKlasse bk = (BrugerKlasse)Session["BrugerKlasse"];
  bk.dinVariabel = ""; // eller 0 eller null alt efter typen
  Session["BrugerKlasse"] = bk;
}
Avatar billede mikkel_sommer Nybegynder
10. februar 2006 - 20:49 #3
hov ved ikke rigtig hvor det "efter" kom fra...
Avatar billede idiotbarn Nybegynder
11. februar 2006 - 16:16 #4
Kontrollerne bliver inkluderet dynamisk, og det er kun nogen få kontroller der skal kunne gøre det, men da det ikke er generelt skulle det gerne være i selve kontrollen.

Jeg kunne muligvis løse problemet ved at se om det er postback og så bestemme hvilket element der gav postback (http://ryanfarley.com/blog/archive/2005/03/11/1886.aspx)
men det er en lidt grim løsning, da der er meget der skal hardcodes...

prerender kommer for sent...
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 16:20 #5
prøv i:
protected override void OnPreInit(EventArgs e)
    {
        base.OnPreInit(e);
    }
Avatar billede idiotbarn Nybegynder
11. februar 2006 - 16:22 #6
i kontrollen?
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 16:25 #7
nej på siden.
Avatar billede idiotbarn Nybegynder
11. februar 2006 - 16:32 #8
Den siger der ikke er noget at override?
Men er heller ikke helt med på hvad du ville gøre der?
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 16:37 #9
du kan nulstille din variabel der.
Avatar billede idiotbarn Nybegynder
11. februar 2006 - 16:48 #10
og så gå ind og kikke om det er postback og hvilken kontrol der lavede postback'en?
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 17:03 #11
ja det er en mulighed.
Hvilken en version af asp.net bruger du ?
Avatar billede idiotbarn Nybegynder
11. februar 2006 - 17:43 #12
1.1
Det er ikke en pæn løsning, men ok, hvis det er den eneste...
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 17:56 #13
hvorfor skal du finde ud af hvilken en kontrol som lavede postback ?
Avatar billede idiotbarn Nybegynder
11. februar 2006 - 18:05 #14
fordi det kun er nogen kontroller der skal nulstille nogen variabler i brugerklassen.
Det der er planen er:
Jeg har den her brugerklasse i en session der indeholder nogen forskellige variable som fx menuen på sitet bliver lavet efter. Nogen af mine user controls tilføjer et menupunkt til menuen, og skal derfor opdatere brugerklassen, men da den skal bygge menuen ud fra klassen, skal den være opdateret inden siden bliver genereret og ikke først efter, så det skal jo nok være på selve siden man skal kikke på det...
Jeg troede der var en nem metode at gøre det, men jeg må nok lidt rundt omkring...
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 18:12 #15
kan du ikke bare databinde menuen i page_load f.eks. ?
Avatar billede idiotbarn Nybegynder
11. februar 2006 - 18:16 #16
jo...gør jeg også, men hvis jeg så tilføjer noget gennem en kontrol ved klik på knap, laver den
kontrol unload
page load - opretter menuen
kontrol load
Knap funktion - Tilføjer menupunktet og ændre i bruger klassen
...
så menuen er lavet på det tidspunkt den går videre til knappen, troede at "knap funktionen" blev udført inden page load.

Det er nok nemmere at løse det med noget javascript...
Avatar billede idiotbarn Nybegynder
29. oktober 2006 - 21:30 #17
...og javascript blev løsningen (sammen med noget ajax)
Lad os dele :)
Avatar billede dr_chaos Nybegynder
30. oktober 2006 - 08:22 #18
svar :)
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