Control.ClientID プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ASP.NET によって生成される HTML マークアップのコントロール ID を取得します。
public:
virtual property System::String ^ ClientID { System::String ^ get(); };
[System.ComponentModel.Browsable(false)]
public virtual string ClientID { get; }
[<System.ComponentModel.Browsable(false)>]
member this.ClientID : string
Public Overridable ReadOnly Property ClientID As String
プロパティ値
ASP.NET によって生成される HTML マークアップのコントロール ID。
- 属性
例
次の例は、マスター ページのコンテンツ ページ内にある Web ユーザー コントロールを示しています。 ユーザー コントロールには、 DropDownList コントロールと コントロールが Label 含まれています。 コントロールに Label 表示されるテキストは、ユーザーがコントロールから DropDownList 選択した値によって決まります。 この値を設定するために Web ページがサーバーにポストバックする必要がないように、テキスト値はクライアント スクリプトによって設定されます。 クライアント スクリプトでコントロールに対してレンダリングされる HTML 要素への参照を Label 取得するには、コントロール ClientID の プロパティの値を知っている必要があります。 ただし、ユーザー コントロールは Web ページ内の任意の場所に配置できるため、コントロールを含む名前付けコンテナーを事前に把握することはできません。 値が 値とClientIDID同じになるように、コードは 値を ClientIDMode にStatic設定します。
次の例は、ユーザー コントロールを示しています。
<%@ Control AutoEventWireup="true" %>
<script type="text/javascript">
var seasonalSports = new Array("None selected",
"Tennis",
"Volleyball",
"Baseball",
"Skiing");
function DisplaySport(x) {
document.getElementById("SelectedSport").innerHTML
= seasonalSports[x];
}
</script>
<asp:DropDownList ID="DropDownList1" runat="server"
onchange="DisplaySport(this.selectedIndex);">
<asp:ListItem Value="Select a season"></asp:ListItem>
<asp:ListItem Value="Spring"></asp:ListItem>
<asp:ListItem Value="Summer"></asp:ListItem>
<asp:ListItem Value="Autumn"></asp:ListItem>
<asp:ListItem Value="Winter"></asp:ListItem>
</asp:DropDownList>
<br />
<asp:Label ID="SelectedSport" runat="server" ClientIDMode="Static">
</asp:Label>
次の例は、ユーザー コントロールを含むコンテンツ ページを示しています。
<%@ Page Title="" MasterPageFile="~/Seasons.master" AutoEventWireup="true" %>
<%@ Register Src="Seasons.ascx" TagName="Seasons" TagPrefix="uc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<uc1:Seasons ID="Seasons1" runat="server" />
</asp:Content>
次の例は、コンテンツ ページを含むマスター ページを示しています。
<%@ Master AutoEventWireup="true" %>
<!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></title>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
注釈
Web サーバー コントロールが HTML 要素としてレンダリングされる場合、 id
HTML 要素の 属性は プロパティの ClientID 値に設定されます。 値は ClientID 、多くの場合、 メソッドを使用してクライアント スクリプトの HTML 要素にアクセスするために使用されます document.getElementById
。 ID は、スタイルを設定する要素を指定するために CSS ルールでもよく使用されます。 たとえば、次の CSS スタイル 規則では、 の属性値ProductIDLabel
を持つすべてのspan
要素がid
選択され、その属性が background-color
にwhite
設定されます。
span#ProductIDLabel { background-color: white; }
ASP.NET には、プロパティ値を生成する方法に関する複数のアルゴリズムが ClientID 用意されています。 コントロールに使用するアルゴリズムを選択するには、そのプロパティを ClientIDMode 設定します。 アルゴリズムは、次の表に ClientIDMode 示す列挙値によって識別されます。
値 | 説明 |
---|---|
AutoID | ClientID 値は、それぞれの親名前付けコンテナーの ID 値とコントロールの ID 値を連結することにより生成されます。 コントロールの複数のインスタンスが表示されるデータ バインディング シナリオでは、コントロールの ID 値の前にインクリメント値が挿入されます。 各セグメントはアンダースコア文字 (_) で区切られます。 このアルゴリズムは、ASP.NET 4 より前のバージョンの ASP.NET で使用されました。 |
Static | ClientID 値は、ID プロパティの値に設定されます。 コントロールが名前付けコンテナーの場合、そのコントロールは、名前付けコンテナーの階層構造に含まれるすべてのコントロールに対して最上位の階層として使用されます。 |
Predictable | このアルゴリズムは、データ バインド コントロール内のコントロールに対して使用されます。 ClientID 値は、親名前付けコンテナーの ClientID 値とコントロールの ID 値を連結することにより生成されます。 コントロールが複数の行を生成するデータ バインド コントロールである場合は、ClientIDRowSuffix プロパティで指定されたデータ フィールドの値が末尾に追加されます。 GridView コントロールの場合は、複数のデータ フィールドを指定できます。 プロパティが ClientIDRowSuffix 空白の場合は、データ フィールド値ではなく、末尾に連続する数値が追加されます。 各セグメントはアンダースコア文字 (_) で区切られます。 |
Inherit | コントロールは、ClientIDMode コントロールの NamingContainer 設定を継承します。 |
ページの ClientIDMode 既定値は です Predictable。 コントロールの ClientIDMode 既定値は です Inherit。 コントロールの既定値は Inheritであるため、既定の生成モードは です Predictable。 (ただし、Visual Studio を使用して Web プロジェクトを以前のバージョンから ASP.NET 4 に変換する場合、Visual Studio では、Web.config ファイルでサイトの既定値が 自動的に に AutoID 設定されます)。
詳細については、ASP.NET Web サーバー コントロールの識別に関する記事をご覧ください。
適用対象
こちらもご覧ください
.NET