ASP.NET - DataSourceID和DataSource有什么区别?

时间:2011-08-17 04:37:51

标签: asp.net datasource

DataSourceID和DataSource与控件属性有什么区别?我可以互换使用吗?

当我尝试在设计时设置DataSource属性时,通过在aspx页面上键入它,我得到一个异常,说明“'DataSource'属性不能以声明方式设置。”但是,当我使用属性窗口更改DataSource时,它没有例外。

3 个答案:

答案 0 :(得分:11)

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

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

答案 1 :(得分:6)

可以为

DataSourceID分配其他类型的数据源控件的ID,例如ObjectDataSource XmlDataSource

数据源控件概述:

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

还有各种其他类型的数据源控件,或者您也可以自己开发。

如果您想直接授予来源控制权,例如DatasourceDataSet

,则会使用

DataTable

答案 2 :(得分:1)

DataSource:获取或设置数据绑定控件从中检索其数据项列表的对象。 (继承自BaseDataBoundControl。)

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

其次,他们可以使用interchangeably,但你必须谨慎使用。例如如果您先分配dataSourceID然后想要使用DataSource,那么在使用DataSource之前,您必须通过设置ControlID.DataSourceID = ""

来清除datasourceID