id,clientid 和 uniqueid 的區別,clientiduniqueid
一、
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種新增加。