2011-08-17 140 views
12

DataSourceID和DataSource与控件属性有什么不同?我可以交替使用它们吗?ASP.NET - DataSourceID和DataSource有什么区别?

当我在设计时尝试设置DataSource属性时,通过在aspx页面上键入它,我得到一个异常,声明“无法声明”设置“DataSource”属性。“但是当我使用属性窗口来更改DataSource时,它不会例外。

+1

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

回答

10

DataSource以清除的DataSourceID是指可以提供.NET数据源控件(如实际的ObjectDataSource数据源对象,SqlDataSource)或实际数据对象(如DataTable,对象集合等)。

DataSourceID是.NET提供的数据源控件的字符串标识符,并且此属性存在以便数据绑定控件和相应的数据源可以关联标记中的设计时间。在内部,控制会使用提供的id来查找实际的数据源控制。

6

DataSourceID可以被分配一个ID类型的其他数据源控件,如ObjectDataSourceXmlDataSource

数据源控件概述:

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

有各种其他类型的数据源控件,以及也可以开发自己的为好。当要直接给所述源,以控制诸如DataSetDataTable

1

DataSource:获取或设置从该数据绑定控件检索其数据项的列表中的对象

Datasource被使用。 (继承自BaseDataBoundControl。)

DataSourceID:获取或设置数据绑定控件从中检索其数据项列表的控件的ID。 (继承DataBoundControl。)

其次它们可以使用interchangeably,但你必须小心使用。例如如果首先分配dataSourceID然后要使用DataSource,然后使用DataSource之前,必须通过设置ControlID.DataSourceID = ""