ASP.NET - What is the difference of DataSourceID and DataSource?
What is the difference of DataSourceID and DataSource from the controls' attribute? Can I use them interchangeably?
When I try to set DataSource
property at the design time, by typing it on the aspx page, I get an exception that says "The 'DataSource' property cannot be set declaratively.". But when I use property window to change the DataSource
, it gives no ex开发者_运维问答ception.
DataSource
refers to actual data source object which can be .NET provided data source controls (such as ObjectDataSource, SqlDataSource) or actual data objects such as DataTable, Collection of objects etc.
DataSourceID
is the string identifier for .NET provided data source control and this property exists so that data-bound control and corresponding data source can be associated at the design time in markup. Internally, the control would look up for actual data source control using the id provided.
DataSourceID
can be assigned an ID of other data source control of type such as ObjectDataSource
XmlDataSource
.
Data Source Controls overview:
http://msdn.microsoft.com/en-us/library/ms227679.aspx
There are various other types of data source controls as well or you can develop your own as well.
Datasource
is used when you want to directly give the source to control such as DataSet
or a DataTable
DataSource: Gets or sets the object from which the data-bound control retrieves its list of data items. (Inherited from BaseDataBoundControl
.)
DataSourceID: Gets or sets the ID of the control from which the data-bound control retrieves its list of data items. (Inherited from DataBoundControl
.)
Secondly they can be used interchangeably
, but you have to use carefully. e.g. If you first assign dataSourceID
and then want to use DataSource
, then before using DataSource
, you have to clear the datasourceID by setting ControlID.DataSourceID = ""
精彩评论