id,clientid 和 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种新增加。
posted @ 2016-11-04 10:28  这都不是事  阅读(1589)  评论(0编辑  收藏  举报