id,clientid 和 uniqueid 的区别

id,clientid 和 uniqueid 的区别,第1张

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获得得到等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9720381.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存