一、 ID是設計的時候所指定的ID。 ClientID是當這個控制項生成到客戶端頁面時候,需要在客戶端訪問時候用的。 UniqueID是當需要參與服務端回傳的時候用的。 備註:當控制項是子控制項的時候(例如在用戶控制項中的Button),ClientID在HTML頁面中是作為控制項的ID屬性,UniqueID ...
一、
ID是設計的時候所指定的ID。
ClientID是當這個控制項生成到客戶端頁面時候,需要在客戶端訪問時候用的。
UniqueID是當需要參與服務端回傳的時候用的。
備註:當控制項是子控制項的時候(例如在用戶控制項中的Button),ClientID在HTML頁面中是作為控制項的ID屬性,UniqueID是作為控制項的Name屬性,如果不是子控制項,那麼ClientID和UniqueID是相同的
例如:
MyControl1是一個用戶控制項,裡面包含一個ID為Button1的按鈕,把MyControl1放在一個頁面中運行,下麵是其頁面的HTML代碼
<input type="submit" name="MyControl1:Button1" value="Button"
id="MyControl1_Button1" />
ClientID:MyControl1_Button1
UniqueID:MyControl1:Button1
補充:當要編寫用戶控制項中一個控制項的客戶端事件代碼時,如果想在用戶控制項內編寫必須要獲取該控制項的ClientID。
二、ASP.NET 的伺服器端控制項有三種關於 ID 的屬性 ID, ClientID 和 UniqueID。
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種新增加。