2010-10-25 13 views
5

¿Cuál es el mejor lugar para crear controles dinámicos en ASP.NET? MSDN dice Pre_init, otro MSDN article dice Init, y some people dicen que el evento Load (que he leído no es bueno para hacer).ASP.NET - Controles dinámicos creados en Page_Pre_init() o Page_Init() o Page_Load()

Estoy estudiando para obtener una certificación de MS y quiero asegurarme de saber cuál es la ideal y por qué. Mi pensamiento inicial sería crear el objeto en preinicio y asignar cualquier valor de propiedad en el evento Load (para que ViewState se cargue para el control dinámico).

Respuesta

4

Recomiendo Page_Init(). Esto omitirá el problema de que ViewState no se carga constantemente. Los controles estarán accesibles, pero viewstate aún no se les aplica. Aquí es exactamente donde desea agregar controles según el segundo artículo.

Además, según la experiencia, esto es lo que funciona. cualquier otro enfoque más me ha causado problemas.

4

Depende, pero creo que el consenso general es que cuanto antes mejor. Entonces, si agrega controles dinámicos a una página, agréguelos en la fase Pre_Init si puede. Si está agregando controles personalizados a un control de usuario, agréguelos en la fase Init si puede (los controles no tienen un Pre_Init).

Hay situaciones en las que no puede agregarlas tan pronto.

  1. Adición de un control en respuesta a alguna entrada del usuario (por ejemplo clic de botón).
  2. Debe cargar un control específico según el estado de la página en la que se encuentre. En este caso, probablemente tendrá que esperar hasta el evento de carga del control que lo contiene para determinar si necesita cargar el control o no.

Como regla general, agréguelos tan pronto como sea posible.

Cuestiones relacionadas