ASP.NET控制元件屬性:ID、ClientID 和 UniqueID 的區別

iDotNetSpace發表於2009-07-16

 ID 表示控制元件的伺服器端程式設計的識別符號,我們寫伺服器端的程式碼,就要用到這個 ID, 通過這個 ID 可以在伺服器端對伺服器端控制元件的屬性、方法等進行程式設計訪問。

      ClientID 
表示由伺服器端生成的客戶端控制元件的ID,   經常用於在客戶端指令碼中訪問伺服器控制元件所呈現的 HTML 元素。一般情況下與伺服器端的 ID 相同,有時,不能為控制元件生成唯一的名稱,例如,如果 Repeater 空間在它的某個模板中包含一個 Label 控制元件,則將在客戶端生成多個該 Lable 的 HTML 元素, 為防止命名衝突,ASP.NET 為各個伺服器控制元件生成一個唯一的ClientID ,ClientID 通過將子控制元件的父控制元件的 UniqueID 值與控制元件的 ID 值連線生成,各個部分之間以下劃線 _ 連線。

      UniqueID 用於獲取伺服器控制元件的唯一的、以分層方式表示的識別符號。當將控制元件放置到重複控制元件(Repeater、DataList和DataGrid)中時,將可能生成多個伺服器端的控制元件,這就需要區分伺服器端的各個控制元件,以使它們的 ID 屬性不衝突。UniqueID 通過將子控制元件的父控制元件的 UniqueID 值與控制元件的 ID 值連線生成,各個部分之間以 IdSeparator 屬性指定的字元連線。預設情況下, IdSeparator 屬性為冒號字元 (:)。此屬性為在 .Net Framework2.0種新增加。

    可以簡單地認為:ClientIDUniqueID是當控制元件放置到重複控制元件(RepeaterDataListDataGrid)中時,用於區分控制元件的客戶端和伺服器的識別符號。ID就是控制元件無重複時在伺服器端表示控制元件的一般程式設計識別符號。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-609336/,如需轉載,請註明出處,否則將追究法律責任。

相關文章