Avatar billede milandt Nybegynder
08. december 2008 - 08:58 Der er 2 kommentarer og
1 løsning

OnInit afvikles to gange

Jeg har haft et problem med at min Page_Load i min ASP.NET 3.5 app blev afviklet to gange. Jeg har forsøgt mig med følgende.

Fjernet AutoEventWireup="true" fra alle masterpages, pages og usercontrols.

Tilføjet AutoEventWireup="false" til <pages> i web.config.

Resultatet heraf er at ingen hverken Page_Load, Page_Init, Page_PreRender etc. er hooked up. Så langt så godt.

Så har jeg tilføjet følgende kode til een tilfældig usercontrol for at teste event wireup:

override protected void OnInit(EventArgs e)
{
    base.OnInit(e);
    InitializeComponent();
}
private void InitializeComponent()
{
    this.Load += new System.EventHandler(this.Page_Load);
}

Efter ovenstående kode er indsat i min usercontrol afvikles Page_Load nu to gange igen. OnInit kaldes to gange, hvilket kalder InitializeComponent to gange hvilket tilføjer Page_Load til this.Load to gange.

Min usercontrol er kun tilføjet een gange på siden. Mine sider benytter sig af masterpages. Både masterpages, pages og usercontrols nedarver fra mine egne klasser hhv. BaseMaster, BasePage og BaseControl.

Siden loades kun een gang jvf. Firebug, og jeg har forsøgt at indsætte breakpoints ved samtlige Response.Redirect i min app, men ingen af dem bliver ramt.

Hvad kan skyldes at OnInit afvikles to gange når jeg har AutoEventWireup="false" for hele min applikation?
Avatar billede milandt Nybegynder
08. december 2008 - 18:01 #1
ping pong?
Avatar billede milandt Nybegynder
11. december 2008 - 10:21 #2
lukket
Avatar billede mireigi Novice
11. december 2008 - 10:31 #3
Så vidt jeg husker er det noget med at en ASP.NET side først indlæses for at generere layout, og derefter refresher sig selv for at tegne sine controls. Hvis du putter alle dine controls i et UpdatePanel burde den kun tegne sig selv, og derefter refreshe indholdet i UpdatePanel. OnInit afvikles dermed kun 1 gang.

Skal dog gerne erkende at jeg ikke er 100% sikker, men ville være det første jeg forsøgte.

MiReiGi
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

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