Avatar billede yaief Nybegynder
06. april 2004 - 17:14 Der er 2 kommentarer og
1 løsning

Page_Load har ikke den nyeste ''state''

Okay, helt og aldeles newbie, men prøver da ihærdigt :)

Jeg har lavet en userControl til min editor, så jeg kan inkludere den som jeg lyster. Det virker sådan set også fint - men den eneste mulighed jeg har fundet for at opdatere dens indhold i databasen er ved at putte både funktionen til at hente og opdatere indholdet under Page_Load.

Så når if(!IsPostBack) henter jeg indholdet fra databasen og tildeler til ta.innerText, og else, så tager jeg ta.innerText og smidder tilbage i databasen.

Det virker fint på en meget simpel eksempelside med stort set kun editoren. Men inkluderet i en lidt mere kompliceret side, bliver det ret mystisk.

Trykker man opdater, så henter den det der stod i editoren -sidste- gang. Så hvis der oprindeligt stod "123" og jeg skriver "abc" og trykker opdater, så står der stadig "123" i databasen, men ikke i feltet. Ændrer jeg det nu til "def" og trykker opdater står der nu "abc" i databasen. Næste gang "def", etc ... det er ret tydeligt den ikke har den nyeste state under Page_Load, men hvad gør jeg ved det??

Det er sikkert ikke den rette måde at gøre den på - men alle former for hints vil være stærkt værdsat :)
Avatar billede yaief Nybegynder
06. april 2004 - 22:27 #1
Nå.
Hvis der er nogen der er interesserede, så var problemet som fint beskrevet her:
--------------------------------------------------
You might of noticed many page template examples out there. Many are using a base page to inherit from that places controls into the Page.Controls collection using OnInit or OnLoad or whatever event then using pages in the designer and adding controls to them just as if they were using a normal page inheriting from the Page class. I really thought this was a good idea and it seems to be very neat and OOP. Unfortunatly, it has many flaws such as

1) not allowing any <%%> script blocks on the child page
2) ruining the view state (if not done on Page.OnInit)
3) disabling Intellisense on the HTML view since you must remove HTML tags for the Top and Bottom controls.
--------------------------------------------------
Som det kan sluttes, så kom mit problem fra den lettere mærkgelige view state, så jeg lavede bare Page_Load om til Page_Init, og håber så det ikke ødelægger noget andet ;-)
Avatar billede mccannon Nybegynder
08. april 2004 - 07:42 #2
umm hvis der er enværdi du gerne vil holde fast i, selvom om der er kørt en postback, så kan du bruge ViewState variabler.

feks ViewState["test"] = "abc";

en note er dog at hvis du vil smide objecter ind i en viewstate variabel, så SKAL de være serilizable.

bare en lille kommentar
Avatar billede yaief Nybegynder
25. april 2004 - 13:06 #3
Udemærket kommentar, men problemet var ikke at jeg ville holde fast i en gammel værdi - men at jeg skulle igennem endnu en postback for at få den nyeste
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