2009-08-07 22 views

Respuesta

4

Este artículo sobre Page Cycle es bastante bueno.

Por ejemplo, supongamos que tiene un GridView que muestra un registro de compañía en cada fila junto con una lista de los oficiales de la compañía en un control ListBox. Para completar la lista de oficiales, vincularía el control ListBox a un control de origen de datos (como SqlDataSource) que recupera los datos del oficial de la compañía utilizando CompanyID en una consulta.

Si propiedades de enlace de datos del control ListBox, como DataSourceID y DataMember, se establecen de forma declarativa, el control ListBox tratará de unirse a su origen de datos durante el evento DataBinding la que contiene de fila. Sin embargo, el campo CompanyID de la fila no contiene contiene un valor hasta que se produce el evento RowDataBound del control GridView . En este caso, el control secundario (el control ListBox ) está vinculado antes de que el control que contiene (el control GridView ) esté vinculado, por lo que sus etapas de unión de datos están desincronizadas.

Para evitar esta condición, poner los datos control de la fuente para el control ListBox en el mismo elemento de la plantilla como el propio control de ListBox, y no establecen las propiedades de la ListBox de unión declarativa de datos. En su lugar, establezca programáticamente en tiempo de ejecución durante el evento RowDataBound, de modo que el control ListBox no vincula a sus datos hasta que esté disponible la información CompanyID .

Cuestiones relacionadas