2011-08-17 24 views
12

¿Cuál es la diferencia de DataSourceID y DataSource del atributo de los controles? ¿Puedo usarlos de manera intercambiable?ASP.NET: ¿Cuál es la diferencia de DataSourceID y DataSource?

Cuando intento configurar la propiedad DataSource en el momento del diseño, escribiéndola en la página aspx, aparece una excepción que dice "La propiedad 'DataSource' no se puede establecer de forma declarativa". Pero cuando uso la ventana de propiedad para cambiar el DataSource, no da excepción.

+1

http://blog.tylerholmes.com/2008/06/datasource-vs-datasourceid-internals.html –

Respuesta

10

DataSource se refiere al objeto de origen de datos real que se puede NET controles de origen de datos proporcionados (como ObjectDataSource , SqlDataSource) u objetos de datos reales como DataTable, Colección de objetos, etc.

DataSourceID es el identificador de cadena para el control de origen de datos proporcionado por .NET y esta propiedad existe para que el control de datos y la fuente de datos correspondiente se puedan asociar a el tiempo de diseño en el marcado. Internamente, el control buscaría el control real de la fuente de datos usando la identificación provista.

6

DataSourceID se le puede asignar un ID de otro control de fuente de datos de tipo como ObjectDataSourceXmlDataSource.

origen de datos generales de los controles:

http://msdn.microsoft.com/en-us/library/ms227679.aspx

Hay varios otros tipos de controles de origen de datos, así o se puede desarrollar su propio también.

Datasource se utiliza cuando se quiere dar directamente la fuente de controlar tales como DataSet o una DataTable

1

DataSource: Obtiene o establece el objeto de la cual el control enlazado a datos recupera su lista de elementos de datos. (Se hereda de BaseDataBoundControl).

DataSourceID: Obtiene o establece el ID del control del que el control de datos recupera su lista de elementos de datos. (Se hereda de DataBoundControl).

En segundo lugar se pueden usar interchangeably, pero debe usarlo con cuidado. p.ej. Si primero asigna dataSourceID y luego desea utilizar DataSource, a continuación, antes de usar DataSource, usted tiene que limpiar el DataSourceID estableciendo ControlID.DataSourceID = ""

Cuestiones relacionadas