サーバコントロールのID,ClientID,UniqueIDの違い
4061 ワード
1、簡単に述べる
IDは設計時に自分で指定したIDであり、サーバコントロールに割り当てられたプログラミング識別子であり、thisをよく使用する.コントロールを探してコントロールを探して、このコントロールはここで言うIDです.
ClientIDはASP.Netで生成されたサーバコントロールはクライアント識別子を得ており、このコントロールがクライアントページに生成されると、クライアントコードがそのコントロールにアクセスする際にClientIDでアクセスする必要がある.
UniqueIDサーバコントロールの一意で階層的な形式で定義された識別子.サービス側の返信に参加する必要がある場合に使用します.重複コントロール(Repeater、DataList、DataGrid)にコントロールを配置すると、複数のサーバ側のコントロールが生成される可能性があります.これにより、ID属性が競合しないように、サーバ側の各コントロールを区別する必要があります.UniqueIDは、サブコントロールの親コントロールのUniqueID値とコントロールのID値を接続することによって生成され、各部分間にIdSeparator属性で指定された文字が接続される.デフォルトでは、IdSeparatorプロパティはコロン(:)です.この属性は.Net Framework2.0種類が新たに増えた.(UniqueIDの解釈を参照し、本編ではIDとClientIDを強調)
2、コード例解説
次のコードを参照してください.
質問する人がいます:var t=document.getElementById("TextBox1");ちゃんと動いてるんじゃないの?
答え:一般的なaspxではID=ClientID(ID値が自分で設定されていることを前提とします)
次のコードを見て、テンプレートページが設定されています.
IDは設計時に自分で指定したIDであり、サーバコントロールに割り当てられたプログラミング識別子であり、thisをよく使用する.コントロールを探してコントロールを探して、このコントロールはここで言う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()
{
var t=document.getElementById('<%= TextBox1.ClientID %>');
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" onclick="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()
{
document.write('<%= TextBox1.ClientID %>')
}
</script>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<input type="button" runat="server" id="button1" onclick="GetValue();" value=" " />
</asp:Content>
ctl00_ContentPlaceHolder1_TextBox1。 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()
{
var t=document.getElementById("TextBox1");
t.innerText=2;
}
</script>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<input type="button" runat="server" id="button1" onclick="GetValue();" value=" " />
</asp:Content>
,t=null, TextBox1, var t=document.getElementById('<%=TextBox1.ClientID%>');
3、
, ClientID , ID 。