2009-07-27 10 views
7

Soy muy nuevo en ASP.NET y, después de darme en el a few problems, me pregunto si estoy haciendo las cosas mal (tengo la mala costumbre de hacerlo). Estoy interesado en conocer cómo funciona ASP.NET.¿Dónde debería hacer las cosas en una página ASP.NET?

Mi pregunta es: ¿Dónde puedo encontrar la documentación que me guíe para decidir dónde hacer qué procesamiento?

Como algunos ejemplos específicos (Estoy interesado en respuestas a éstas pero prefiero ser puntiaguda en un recurso que da respuestas más generales):

  • Qué debo hacer procesamiento en Page_Load?
  • ¿Qué proceso debo hacer con el evento Load?
  • ¿Qué puede hago en Page_Unload?
  • ¿En qué orden se hacen las cosas?
  • ¿Cuándo se activa cada evento?
  • ¿Cuál es el ciclo de vida de la página?

edición: this question también podrían ser de utilidad para algunas personas.

+2

El ciclo de vida de la página ASP.Net reclama otra víctima. – womp

+0

¿Qué? ¿Estoy ahora condenado a volverme adicto o algo así? '' – BCS

+0

No, simplemente no es productivo. :-) –

Respuesta

4

Éstos son algunos buenos enlaces para ayudarle a empezar. Comprender cómo encaja el ciclo de vida de ASP.NET en es fundamental para comprender cómo su código interactuará con él.

ASP.NET Page Life Cycle Overview:

Cuando se ejecuta una página ASP.NET, la página pasa por un ciclo de vida en el que realiza una serie de pasos de procesamiento. Incluyen la inicialización, controles de instanciación, restauración y mantenimiento del estado, ejecución del código del controlador del evento y representación. Es importante para usted comprender el ciclo de vida de la página para que pueda escribir el código en la etapa del ciclo de vida apropiado para el efecto que desea. Además, si desarrolla personalizados controles, debe estar familiarizado con el ciclo de vida la página con el fin de inicializar correctamente los controles, propiedades de control pueblan con los datos del estado de vista, y ejecutar cualquier código de comportamiento de control . (El ciclo de vida de un control se basa en el ciclo de vida de la página , pero la página plantea más eventos para un control que los disponibles para una página ASP.NET sola.)

The ASP.NET Page Life Cycle:

Cuando una solicitud de página se envía al servidor Web , ya sea a través de una presentación o el cambio de ubicación, se ejecuta la página a través de una serie de eventos durante su creación y disposición. Cuando intentamos crear páginas ASP.NET y este ciclo de ejecución no se tiene en cuenta, podemos causar muchos dolores de cabeza para . Sin embargo, cuando se utiliza y manipulado correctamente, el ciclo de ejecución de de una página puede ser una herramienta eficaz y potente. Muchos desarrolladores son entendiendo que lo que ocurre y cuando sucede es crucial para escribir efectivamente las páginas ASP.NET o los controles del usuario. Así que vamos a examinar en los diez eventos de una página de ASP.NET , desde su creación hasta su eliminación. Nosotros también veremos cómo aprovechar estos eventos para implantar nuestro propio código personalizado.

+0

Ambos enlaces parecen útiles. Gracias. – BCS

5

Lo primero que debe aprender para comprender las preguntas que acaba de hacer es: PAGE LIFE CYCLE. A veces es una perra, especialmente la parte ViewState.

• ¿Qué proceso debo hacer en Page_Load?

• ¿Qué proceso debo hacer con el evento Load? = Página_carga

• ¿Qué puedo hacer en Page_Unload? Limpieza

• ¿En qué orden se hacen las cosas? CICLO DE VIDA DE LA PÁGINA

• ¿Cuándo se activa cada evento? CICLO DE VIDA DE LA PÁGINA

• ¿Cuál es la vida útil de la página? alt text http://www.eggheadcafe.com/articles/o_aspNet_Page_LifeCycle.jpg

Editar: fuente Image: http://www.eggheadcafe.com/articles/20051227.asp

Más información: http://www.codeproject.com/KB/aspnet/PageLifeCycle.aspx

+0

¿Tiene un enlace al origen de la imagen? No va a ser muy bueno sin alguna explicación. – BCS

+1

No es tan perverso como el cableado de controladores de eventos a objetos creados dinámicamente;) – BenAlabaster

+0

Lamentablemente, ese enlace no proporciona mucho contexto. – BCS

5

Los enlaces publicados por varias personas están muy atento - el ciclo de vida de página ASP.NET en realidad no es siempre fácil grok y maestro!

En un consejo: recomendaría preferir los métodos anulados frente a los métodos adjuntos "mágicamente", p. preferir la

protected override void OnLoad(EventArgs e) 

sobre el

protected void Page_Load(object sender, EventArgs e) 

¿Por qué?Simple: en los métodos sobrescritos, puede especificar a sí mismo, siempre y cuando el método de base se llamará:

protected override void OnLoad(EventArgs e) 
{ 
    base.OnLoad(e); 
    // your stuff 
} 

o:

protected override void OnLoad(EventArgs e) 
{ 
    // your stuff 
    base.OnLoad(e); 
} 

o incluso:

protected override void OnLoad(EventArgs e) 
{ 
    // some of your stuff 
    base.OnLoad(e); 
    // the rest of your stuff 
} 

o incluso:

protected override void OnLoad(EventArgs e) 
{ 
    // your stuff 
    // not call the base.OnLoad at all 
} 

No tiene esa flexibilidad en la versión de Page_Load().

Marc

2

Sin duda recomiendo que lean esto:

http://www.west-wind.com/presentations/howaspnetworks/howaspnetworks.asp

Si eres nuevo en ASP.NET que tendrá algunos problemas para conseguir todo eso, pero en realidad, todavía no se ha encontrado un documento tan detallado sobre el tema proveniente de la documentación de ms o de cualquier blog de empleado de ms.

Lo hice de la manera difícil y seguí cada camino que pude usando código desensamblado, pero ese tipo realmente se tomó el tiempo para escribirlo.

+0

Que una lectura genial y que vale la pena el tiempo. +1 Sin embargo, se detiene justo debajo del punto que me interesa saber (es * a * bajo) – BCS

+0

Lo siento, BCS, tienes toda la razón al respecto. – user134706

-1

Básicamente intente hacerlo en Page_Load y si eso no funciona, pruébelo en Page_Init o Page_Render. Normalmente uno de ellos funciona :) Ese es el enfoque científico.

+0

Para la persona que me votó - ¡se suponía que era una broma, tonto! –

+1

Y como una broma no debería estar cerca de la parte superior de las respuestas. – BCS

Cuestiones relacionadas