2011-08-17 194 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 = ""