ASP.NET - DataSourceID 和 DataSource 有啥区别?

Posted

技术标签:

【中文标题】ASP.NET - DataSourceID 和 DataSource 有啥区别?【英文标题】:ASP.NET - What is the difference of DataSourceID and DataSource?ASP.NET - DataSourceID 和 DataSource 有什么区别? 【发布时间】:2011-10-28 14:48:15 【问题描述】:

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

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

【问题讨论】:

blog.tylerholmes.com/2008/06/… 【参考方案1】:

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

数据源控件概述:

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

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

Datasource 用于当你想直接给源控制,如DataSetDataTable

【讨论】:

【参考方案2】:

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

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

其次它们可以使用interchangeably,但你必须小心使用。例如如果你先分配dataSourceID,然后想使用DataSource,那么在使用DataSource之前,你必须通过设置ControlID.DataSourceID = ""来清除datasourceID

【讨论】:

【参考方案3】:

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

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

【讨论】:

以上是关于ASP.NET - DataSourceID 和 DataSource 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取触发 onSelecting 事件的数据源的 datasourceID?

ASP.NET使用ajax实现分页局部刷新页面

DataSource和DataSourceID都在'GridView1'上定义。删除一个定义

ado.net和asp.net区别?

ASP.NET和ASP的区别是啥?

ASP.NET_基础