2011-07-19 29 views
9

Una página containts control de dirección de la costumbre y la casilla de verificación. ¿Por qué el segundo ejemplo de código funciona correctamente, pero primero no?Page_Init y Load

//1 
protected void Page_Init(object sender, EventArgs e) 
{ 
    //doesn't work properly 
    ucLegalAddress.Visible = !chkLegalAddress.Checked; 
} 


//2 
protected void Page_Load(object sender, EventArgs e) 
    { 
    //works properly 
    ucLegalAddress.Visible = !chkLegalAddress.Checked; 
    } 
+2

PLZ g a través de este http://codeasp.net/articles/aspnet-page-lifecycle/20/asp.net. si le ayuda a comprender bien el concepto – Devjosh

Respuesta

11

Debido a que se carga el estado de vista de los controles entre el init y el evento de carga. Esto significa que el evento init todavía no conoce el estado del cliente.

MSDN lifecycle overview

2

Porque todos los controles se crean en el método OnInit(), esa llamada entre Page_Init y Page_Load. En Page_Init todos los controles son nulos. Read more

+6

No 'null' en realidad. Ellos tienen sus propiedades predeterminadas. – VMAtm