Cuando un control enlazado a datos (GridView, Repeater, etc.) tiene establecida la propiedad DataSourceID a un control de origen de datos (ObjectaDataSource, SqlDataSource, etc.), y no se llama de forma explícita en ningún momento al método DataBind() del control enlazado a datos, se produce el enlace de forma automática durante el evento Page_PreRender para todos estos controles siempre y cuando estén visibles.
Esto es cierto como la vida misma, pero hay una excepción que merece la pena reseñar y que a mi, personalmente, me ha dado más de un quebradero de cabeza.
En el caso de llamar al método DataBind() de la página, esto es Me.DataBind(), la página llama a los métodos DataBind() de cada control enlazado a datos y con la propiedad DataSourceID establecida, estén o no estén visibles!.
Cuidado con esto, porque te puede armar un buen lío.
En cualquier caso, mi recomendación "dominguera" de hoy, es no llamar nunca a
Me.DataBind(), demasiado descontrol para mi gusto.
Un saludo!
No hay comentarios:
Publicar un comentario