Avatar billede Slettet bruger
23. juli 2007 - 17:01 Der er 3 kommentarer

Usercontrol modificering af variabel

Jeg har en usercontrol som har en public variabel, som den ændrer ud fra en formular.
Når formularen bliver submitted, ændres formularen.

I Page_Load på den side som indeholder UserControl'en, vil jeg gerne have mulighed for at se værdien af variablen. Problemet er, at når formularen submittes ændres variablen, men dette sker tilsyneladende _efter_ at Page_Load på min aspx side er kaldt.

Hvordan omgår jeg dette?
Avatar billede neoman Novice
23. juli 2007 - 17:25 #1
En page life cycle med usercontrols er forklaret her :  http://www.codeproject.com/useritems/lifecycle.asp

En PageLoad kører som en af de første,  og først derefter kører diverse event-handlers. Når du laver et eller andet programmeringsmæssigt i din formular, så bliver dette "et-eller-andet" først udført efter pageload er kørt. Med andre ord eventhandleren ændrer værdien først efter at din kode er forbi PageLoad.

Du kunne måske lave noget i JavaScript på klienten og lægge resultatet i et hidden field. Så kunne du fiske resultatet ud af Request.Form("Navnet_på_myHiddenField") i din PageLoad.

En mulighed er at kigge på PreRender. På dette tidspunkt er alle eventhandlers udført, men siden er endnu ikke sendt til klienten, så man kan stadig nå at lave lidt ændringer, baseret på udfaldet af operationen. Det kommer helt an på dit specifikke problem.
Avatar billede Slettet bruger
23. juli 2007 - 21:32 #2
Jeg fik løst problemet ved at gøre mine ting i OnPreRender i min aspx fil istedet for i Page_Load.

Smider du et svar?
Avatar billede neoman Novice
23. juli 2007 - 22:44 #3
fint nok - 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
Kurser inden for grundlæggende programmering

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