
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。
ASPNET 的服务器端控件有三种关于 ID 的属性 ID, ClientID 和 UniqueID。
ID 表示控件的服务器端编程的标识符,我们写服务器端的代码,就要用到这个 ID, 通过这个 ID
可以在服务器端对服务器端控件的属性、方法和时间进行编程访问。
ClientID
表示由服务器端生成的客户端控件的ID, 经常用于在客户端脚本中访问服务器控件所呈现的 HTML 元素。一般情况下与服务器端的 ID
相同,有时,不能为控件生成唯一的名称,例如,如果 Repeater 空间在它的某个模板中包含一个 Label 控件,则将在客户端生成多个该 Lable 的
HTML 元素, 为防止命名冲突,ASPNET 为各个服务器控件生成一个唯一的 ClientID ,ClientID 通过将子控件的父控件的 UniqueID
值与控件的 ID 值连接生成,各个部分之间以下划线 _ 连接。
UniqueID
用于获取服务器控件的唯一的、以分层方式表示的标识符。当将控件放置到重复控件(Repeater、DataList和DataGrid)中时,将可能生成多个服务器端的控件,这就需要区分服务器端的各个控件,以使它们的
ID 属性不冲突。UniqueID 通过将子控件的父控件的 UniqueID 值与控件的 ID 值连接生成,各个部分之间以 IdSeparator
属性指定的字符连接。默认情况下, IdSeparator 属性为冒号字符 (:)。此属性为在 Net
Framework20种新增加。
大致是HtmlControl被服务器发送到页面ID不变,比如<div id="a" runat="sever"></div>
WebControl 被服务器发送到页面,如果在其他循环控件里,或者在用户控件中,ID会变,
用documentgetElementById("<%=Button1ClientID%>")
这个你多看看页面源代码,就知道什么时候会变。什么时候不会变
类似取Text需要这样写:documentgetElementById("<%=Button1ClientID%>")value
而不是直观意义上documentgetElementById("<%=Button1ClientID%>")text
这个是javascript语言,就这个语法,这个属性,就用value取值,在js中就是这样,没什么说的
如果是在net后台,才用Button1Text
你可以这样做。
1、利用你的div,给它添加runat="server"属性,然后让这个div的id都唯一,这个应该不难做大吧。
<div id='div<%= i %>'>类似这样
2、你不是会有OnItemCommand事件么,在这个事件里就可以找到这个div。我写下伪代码:
protected void repeater_OnItemCommand(object sender, e){
div = eControls[0] as HtmlControl;
textbox = eControls[1] as TextBox;
if(div != null)
divAttributesAdd("data", textboxClientID);
}
3、在你的客户端,用js获取div的data属性,就可以获取到textbox在客户端的id了
documentgetElementById("")value这个只能获取客户端控件的值例如(<input type="text" id="txtName">)这种纯html的控件,如果要用aspnet服务器端控件,获取方法是documentgetElementById("<%=控件的IDClientID %>")value; // ClientID 客户端Id 原因是aspnet服务器端控件转为html空间的时候id,name后经过程序的处理,有一些变化,所以用上面的 方法进行获取,
以上就是关于id,clientid 和 uniqueid 的区别全部的内容,包括:id,clientid 和 uniqueid 的区别、JS中获取某控件的属性的几种方法、aspx,javascript,用repeater动态生成的textbox,在一个动态生成的div里,div可以通过id获得得到等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)