asp.net 服务器控件的 ID,ClientID,UniqueID 的区别
ID是设计的时候自己所指定的ID,是我们分配给服务器控件的编程标识符,我们常常使用this.controlid来寻找控件,那么这个controlid就是这里所说的ID.
ClientID是由ASP.Net生成的服务器控件得客户端标识符,当这个控件生成到客户端页面的时候,在客户端代码访问该控件时就需要通过ClientID来访问。
UniqueID 服务器控件的唯一的、分层的形式限定的标识符。 是当需要参与服务端回传的时候用的。当将控件放置到重复控件(Repeater、DataList和DataGrid)中时,将可能生成多个服务器端的控件,这就需要区分服务器端的各个控件,以使它们的 ID 属性不冲突。UniqueID 通过将子控件的父控件的 UniqueID 值与控件的 ID 值连接生成,各个部分之间以 IdSeparator 属性指定的字符连接。默认情况下, IdSeparator 属性为冒号字符 (:)。此属性为在 .Net Framework2.0种新增加。 (UniqueID 的解释做了参照,本篇重点强调ID与ClientID)
2、代码示例解说
看看如下代码:
复制代码 代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<script type="text/javascript">
function GetValue()
{
<SPAN style="COLOR: #0080c0"><STRONG>var t=document.getElementById('<%= TextBox1.ClientID %>');</STRONG></SPAN>
t.innerText=2;
}
</script>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></div>
<input type="button" runat="server" id="button1" οnclick="GetValue();" value="赋值" />
</form>
</body>
</html>
有人会问了:var t=document.getElementById("TextBox1");不是也运行的好好的吗?
答案:在一般的aspx中ID=ClientID(前提是你自己已经设置好了ID值)
看下面代码,设置了模板页
复制代码 代码如下:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<script type="text/javascript">
function GetValue()
{
<SPAN style="COLOR: #0080c0"><STRONG>document.write('<%= TextBox1.ClientID %>')</STRONG></SPAN>
}
</script>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<input type="button" runat="server" id="button1" οnclick="GetValue();" value="赋值" />
</asp:Content>
页面显示了<SPAN style="COLOR: #0080c0"><STRONG>ctl00_ContentPlaceHolder1_TextBox1</STRONG></SPAN>。即TextBox1.ClientID =ctl00_ContentPlaceHolder1_TextBox1。
此时把代码改成
复制代码 代码如下:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<script type="text/javascript">
function GetValue()
{
<SPAN style="COLOR: #0080c0"><STRONG><SPAN style="TEXT-DECORATION: line-through">var t=document.getElementById("TextBox1");</SPAN></STRONG></SPAN>
t.innerText=2;
}
</script>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<input type="button" runat="server" id="button1" οnclick="GetValue();" value="赋值" />
</asp:Content>
出错了,t=null,也就是找不到TextBox1,所以需要改成<SPAN style="COLOR: #0080c0"><STRONG>var t=document.getElementById('<%=TextBox1.ClientID%>');</STRONG></SPAN>
3、综述
view sourceprint?1 对于服务器控件,在客户端调时使用ClientID属性,在服务端时使用ID属性。
本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/archive/2011/04/07/2007679.html,如需转载请自行联系原作者
asp.net 服务器控件的 ID,ClientID,UniqueID 的区别相关推荐
- asp.net中控件id,clientid,uniqueid的区别
id是你在代码编写时给其赋的id属性,如果没有进行赋值,系统会自动生成一个名称,如:_ctlX,X是从0开始的递增的索引,范围是0~127 uniqueid是asp.net为每一个控件生成的真正的服务 ...
- ID,ClientID,UniqueID的区别
ID是设计的时候所指定的ID. ClientID是当这个控件生成到客户端页面时候,需要在客户端访问时候用的. UniqueID是当需要参与服务端回传的时候用的. 备注:当控件是子控件的时候(例如在用户 ...
- 服务器控件的 ID, ClientID 和 UniqueID 属性
ASP.NET 的服务器端控件有三种关于 ID 的属性 ID, ClientID 和 UniqueID. ID 表示控件的服务器端编程的标识符,我们写服务器端的代码,就要用到这个 ID, 通过这个 I ...
- 学习ID,ClientID,UniqueID
gvData里有个lbl_UserID ID 为 lbl_User ClientID 为 gvData_ctl02_lbl_UserID UniqueID 为 gvData$ctl02$lbl_Use ...
- asp.net 控件的 ID ,ClientID ,UniqueID 区别
对于每一个服务器控件System.Web.UI.Control 都具有 ID,UniqueID,ClientID 三个属性,那么这个三者到底有河关系,在客户端HTML中又是如何对应呈现的呢? ID:获 ...
- 【转】 ID,ClientID和UniqueID
在ASP.NET 的服务器端控件中有三种关于 ID 的属性,即 ID, ClientID 和 UniqueID. ID 表示控件的服务器端编程的标识符,我们写"服务器端的代码",就 ...
- id,clientid 和 uniqueid 的区别
一. ID是设计的时候所指定的ID. ClientID是当这个控件生成到客户端页面时候,需要在客户端访问时候用的. UniqueID是当需要参与服务端回传的时候用的. 备注:当控件是子控件的时候(例如 ...
- 关于 asp.net 服务器控件几个 ID 的说明
对于每一个服务器控件System.Web.UI.Control 都具有 ID,UniqueID,ClientID 三个属性,那么这个三者到底有河关系,在客户端HTML中又是如何对应呈现的呢? ID:获 ...
- ASP.NET服务器控件开发(2)--继承WebControl类
文章作者:高维鹏(Brian) 文章出处:http://www.cnblogs.com/gaoweipeng 前篇文章简单介绍了如何封装Html来创建我们的ASP.NET服务器控件.这篇说说如何继承A ...
最新文章
- 4月17日云栖精选夜读 | 在阿里做了五年技术主管,我有话想说
- CUDA ---- device管理
- cf-Global Round2-C. Ramesses and Corner Inversion(思维)
- 消除左递归c++代码_「leetcode」129. 求根到叶子节点数字之和【递归中隐藏着回溯】详解...
- 用树莓派做蜘蛛机器人,还是3D打印的!
- 2019年java安装步骤_win10的JAVA(jdk)2020年最新版安装教程心得
- canvas 动画库 CreateJs 之 EaselJS(上篇)
- 云图说|初识ModelArts开发者生态社区——AI Gallery
- matlab nsga-ii,NSGA-II Matlab toolbox | 学步园
- HDU4183 Pahom on Water(来回走最大流,一个点只经过一次)
- 数学建模(7)---建模开始
- 蓝桥杯 ALGO-139 算法训练 s01串
- FMEA手册第五版学习笔记(一)
- WPS新建文字分享微信.docx形式_DOC和DOCX文件的区别
- 有没有测身高的手机软件?这3款App和卷尺一样精准实用
- 火狐下载文件名乱码问题
- Github常用License总结(MIT/Apache/GPL)
- 纵横杯2020 web wp
- 基于Matlab的交通限速标志的识别系统 数字图像处理大作业
- c++也能做动图?——devc++窗口做简单移动
热门文章
- beanshell变量无法传到jmeter_学会BeanShell,才敢说自己懂Jmeter
- python functools import wraps_python装饰器中functools.wraps的作用详解
- c语言 异或_C语言经典例题来袭!5大方法告诉你答案
- 疾病相关数据查找,Our world in data使用指南
- Vivado关联Modelsim进行仿真
- 详细分析TCP数据的传输过程
- JavaScript/VBScript脚本程序调试(Wscript篇)
- weiler-atherton多边形裁剪算法_EAST算法超详细源码解析:数据预处理与标签生成...
- 【机器学习】使用奇异值分解(SVD)构建推荐系统
- 【深度学习】GPU选型调研!3090依旧是性价比之王