Asp.Net的控件ID

asp.net控件有三个ID属性,ID、UniqueID和ClientID,但是这三个ID有什么不同?

写个例子来看看

新建一个.NET Framework 4.0的asp.net应用程序项目,vs会自动生成一个模板,里面包含几个aspx页面和一个母版页,在default.aspx页面中添加一个label控件和button控件,如图

后台写上如下代码:

string display = "ID: " + Button1.ID + "<br/>" + "UniqueID: " + Button1.UniqueID + "<br/>" + "ClientID: " + Button1.ClientID + "<br/>";
Label1.Text = display;

F5运行,如图

看出来了吗? 我们再来看看html是什么样的。。 

 

ClientID和input控件的ID一样,UniqueID和input控件的name一样,而ID则没有出现,但是不管是ClientID还是UniqueID都包含了它。

因为asp.net控件的ID表示我们给它命名的ID,不论在服务端还是客户端程序都不会使用这个ID;UniqueID表示控件的服务端ID;ClientID表示客服端ID,在客户端JavaScript就可以通过它使用来访问该控件。

很多人在前端访问这个button时,会这样写:

document.getElementByID("Button1");

这样写的话,就错了,因为在客户端button1并不是它的ID,正确的写法应该是:

document.getElementByID("<%= Button1.ClientID %>"); 

当button在母版页或者是usercontrol里,它的UniqueID和ClientID会自动加上父控件的UniqueID和分隔符。在服务端默认是"$",在客户端将这些"$"转换为下滑线"_"。

参考:《庖丁解牛:纵向切入ASP.NET 3.5控件和组件开发技术》 (好书一本,强烈推荐)

转载于:https://www.cnblogs.com/liuxun/archive/2012/03/12/2392338.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值