domingo, 13 de junio de 2010

Me.DataBind()

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