ASP.NET Repeater ItemDataBound sucede DESPUÉS del evento PreRender?
data-binding events (4)
Tengo un control de repetidor en un formulario web ASP.NET 2.0.
Según lo entiendo, todos los controles vinculados a datos de la página disparan sus eventos vinculantes en algún lugar entre los Page_Load
y Page_PreRender
.
Sin embargo, el evento ItemDataBound
mi repetidor parece estar sucediendo DESPUÉS del evento PreRender
.
¿Cómo es esto y hay alguna forma de que pueda acceder a los controles de página DESPUÉS de que se hayan disparado todos los eventos de ItemDataBound
?
Actualizaciones:
El repetidor utiliza un
ObjectDataSource
con el conjunto declarativoDataSourceID
en el control del repetidor.El ID u objeto de DataSource no se modifica en absoluto durante el ciclo de vida de la página.
¿Vincula específicamente su repetidor (myRepeater.DataBind ();) en su código detrás del archivo (por ejemplo, dentro del evento Page_Load ())?
¿Has comprobado el ciclo de vida de los eventos de ASP.NET? Lo siento si ya sabes esto, pero por las dudas: http://msdn.microsoft.com/en-us/library/ms178472.aspx
Espero eso ayude.
Ricardo.
Creo que tuve una situación similar, y mi opción fue FORZAR los controles para que se unieran, llamando a EnsureChildControls o algún método similar.
El enlace de datos declarativo (origen de datos especificado a través de la propiedad DataSourceID) ocurre más tarde que el evento PreRender. El comportamiento que estás observando es por diseño. Si esto no es lo que necesita, debe vincular su control de datos explícitamente, simplemente llame a su método DataBind.
También hay una buena publicación sobre el evento repetidor en la siguiente publicación del blog: