Control.ClientID Control.ClientID Control.ClientID Control.ClientID Property


ASP.NET によって生成される HTML マークアップのコントロール ID を取得します。Gets the control ID for HTML markup that is generated by ASP.NET.

 virtual property System::String ^ ClientID { System::String ^ get(); };
public virtual string ClientID { get; }
member this.ClientID : string
Public Overridable ReadOnly Property ClientID As String


ASP.NET によって生成される HTML マークアップのコントロール ID。The control ID for HTML markup that is generated by ASP.NET.

次の例は、マスターページのコンテンツページ内にある Web ユーザーコントロールを示しています。The following examples show a Web user control that is inside a content page for a master page. ユーザーコントロールには、 DropDownListコントロールLabelとコントロールが含まれています。The user control contains a DropDownList control and a Label control. Labelコントロールに表示されるテキストは、ユーザーがDropDownListコントロールから選択した値によって決まります。The text that is displayed in the Label control is determined by the value that the user selects from the DropDownList control. テキスト値はクライアントスクリプトによって設定されるため、この値を設定するために Web ページがサーバーにポストバックする必要はありません。The text value is set through client script so that the Web page does not have to post back to the server in order to set this value. クライアントスクリプトでLabelコントロールに対して表示される HTML 要素への参照を取得するには、コントロールのClientIDプロパティの値を把握している必要があります。To get a reference to the HTML element that is rendered for the Label control in client script, you must know the value of the control's ClientID property. ただし、ユーザーコントロールは Web ページ内の任意の場所に配置できるため、どの名前付けコンテナーにコントロールが格納されるかを事前に把握することはできません。However, because the user control can be put anywhere in a Web page, it is impossible to know in advance which naming containers will contain the controls. 値がID値と同じになるように、このコードではClientIDMode値をにStatic設定します。 ClientIDTo make sure that the ClientID value will be the same as the ID value, the code sets the ClientIDMode value to Static.

次の例は、ユーザーコントロールを示しています。The following example shows the user control.

次の例は、ユーザーコントロールを含むコンテンツページを示しています。The following example shows the content page that contains the user control.

次の例は、コンテンツページを含むマスターページを示しています。The following example shows the master page that contains the content page.


Web サーバーコントロールが html 要素として表示される場合id 、html 要素の属性は、 ClientIDプロパティの値に設定されます。When a Web server control is rendered as an HTML element, the id attribute of the HTML element is set to the value of the ClientID property. この値は、多くの場合、 document.getElementByIdメソッドを使用してクライアントスクリプト内の HTML 要素にアクセスするために使用されます。 ClientIDThe ClientID value is often used to access the HTML element in client script by using the document.getElementById method. また、ID は、スタイルを設定する要素を指定するために CSS 規則で使用されることもよくあります。The ID is also often used in CSS rules to specify elements to style. たとえば、次の CSS スタイル規則では、 span id属性値がであるすべてのProductIDLabel要素を選択background-colorし、 whiteその属性をに設定しています。For example, the following CSS style rule selects all span elements that have the id attribute value of ProductIDLabel and sets their background-color attribute to white:

span#ProductIDLabel { background-color: white; }  

ASP.NET は、 ClientIDプロパティ値を生成する方法に対して複数のアルゴリズムを提供します。ASP.NET provides multiple algorithms for how to generate the ClientID property value. コントロールに使用するアルゴリズムを選択するには、 ClientIDModeプロパティを設定します。You select which algorithm to use for a control by setting its ClientIDMode property. アルゴリズムは、次の表ClientIDModeに示す列挙値によって識別されます。The algorithms are identified by the ClientIDMode enumeration values that are listed in the following table.

[値]Value 説明Description
AutoID ClientID 値は、それぞれの親名前付けコンテナーの ID 値とコントロールの ID 値を連結することにより生成されます。The ClientID value is generated by concatenating the ID values of each parent naming container with the ID value of the control. コントロールの複数のインスタンスが表示されるデータ バインディング シナリオでは、コントロールの ID 値の前にインクリメント値が挿入されます。In data-binding scenarios where multiple instances of a control are rendered, an incrementing value is inserted in front of the control's ID value. 各セグメントはアンダースコア文字 () で区切られます。Each segment is separated by an underscore character (). このアルゴリズムは、ASP.NET 4 より前のバージョンの ASP.NET で使用されていました。This algorithm was used in versions of ASP.NET earlier than ASP.NET 4.
Static ClientID 値は、ID プロパティの値に設定されます。The ClientID value is set to the value of the ID property. コントロールが名前付けコンテナーの場合、そのコントロールは、名前付けコンテナーの階層構造に含まれるすべてのコントロールに対して最上位の階層として使用されます。If the control is a naming container, the control is used as the top of the hierarchy of naming containers for any controls that it contains.
Predictable このアルゴリズムは、データ バインド コントロール内のコントロールに対して使用されます。This algorithm is used for controls that are in data-bound controls. ClientID 値は、親名前付けコンテナーの ClientID 値とコントロールの ID 値を連結することにより生成されます。The ClientID value is generated by concatenating the ClientID value of the parent naming container with the ID value of the control. コントロールが複数の行を生成するデータ バインド コントロールである場合は、ClientIDRowSuffix プロパティで指定されたデータ フィールドの値が末尾に追加されます。If the control is a data-bound control that generates multiple rows, the value of the data field specified in the ClientIDRowSuffix property is added at the end. GridView コントロールの場合は、複数のデータ フィールドを指定できます。For the GridView control, multiple data fields can be specified. ClientIDRowSuffixプロパティが空白の場合は、データフィールドの値ではなく、末尾に連続する数値が追加されます。If the ClientIDRowSuffix property is blank, a sequential number is added at the end instead of a data-field value. 各セグメントはアンダースコア文字 () で区切られます。Each segment is separated by an underscore character ().
Inherit コントロールは、ClientIDMode コントロールの NamingContainer 設定を継承します。The control inherits the ClientIDMode setting of its NamingContainer control.

ページののClientIDMode既定値はPredictableです。The default value of ClientIDMode for a page is Predictable. コントロールののClientIDMode既定値はInheritです。The default value of ClientIDMode for a control is Inherit. コントロールの既定値はInheritであるため、既定の生成Predictableモードはです。Because the default for controls is Inherit, the default generation mode is Predictable. (ただし、visual studio を使用して、web プロジェクトを以前のバージョンの ASP.NET 4 に変換する場合、web.config ファイルでは、 AutoID visual studio によってサイトの既定値が自動的にに設定されます)。(However, if you use Visual Studio to convert a Web project to ASP.NET 4 from an earlier version, Visual Studio automatically sets the site default to AutoID in the Web.config file.)

詳細については、ASP.NET Web サーバー コントロールの識別に関する記事をご覧ください。For more information, see ASP.NET Web Server Control Identification.