DataSourceID和DataSource与控件属性有什么区别?我可以互换使用吗?
当我尝试在设计时设置DataSource
属性时,通过在aspx页面上键入它,我得到一个异常,说明“'DataSource'属性不能以声明方式设置。”但是,当我使用属性窗口更改DataSource
时,它没有例外。
答案 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
还有各种其他类型的数据源控件,或者您也可以自己开发。
如果您想直接授予来源控制权,例如Datasource
或DataSet
,则会使用 DataTable
答案 2 :(得分:1)
DataSource:获取或设置数据绑定控件从中检索其数据项列表的对象。 (继承自BaseDataBoundControl
。)
DataSourceID:获取或设置数据绑定控件从中检索其数据项列表的控件的ID。 (继承自DataBoundControl
。)
其次,他们可以使用interchangeably
,但你必须谨慎使用。例如如果您先分配dataSourceID
然后想要使用DataSource
,那么在使用DataSource
之前,您必须通过设置ControlID.DataSourceID = ""