Control.ClientIDMode プロパティ


ClientID プロパティの値を生成するために使用されるアルゴリズムを取得または設定します。Gets or sets the algorithm that is used to generate the value of the ClientID property.

 virtual property System::Web::UI::ClientIDMode ClientIDMode { System::Web::UI::ClientIDMode get(); void set(System::Web::UI::ClientIDMode value); };
public virtual System.Web.UI.ClientIDMode ClientIDMode { get; set; }
member this.ClientIDMode : System.Web.UI.ClientIDMode with get, set
Public Overridable Property ClientIDMode As ClientIDMode



ClientID プロパティの生成方法を示す値。A value that indicates how the ClientID property is generated. 既定では、 Inheritです。The default is Inherit.


次の例は、ListView コントロールに含まれているコントロール Label を示しています。The following example shows Label controls that are contained in a ListView control. ListView コントロールでは、ClientIDMode プロパティが Predictable に設定され、ClientIDRowSuffix プロパティが ProductIDに設定されます。On the ListView control, the ClientIDMode property is set to Predictable and the ClientIDRowSuffix property is set to ProductID. レンダリングされた HTML では、3つの ProductIDLabel コントロールに対応する3つの span 要素を作成します。In the rendered HTML, this creates three span elements that correspond to three ProductIDLabel controls. ページを実行すると、span 要素の id 属性は次の値に設定されます。When the page runs, the id attributes for the span elements are set to the following values:

  • ListView1_ProductIDLabel_1
  • ListView1_ProductIDLabel_34
  • ListView1_ProductIDLabel_43
<asp:XmlDataSource ID="XmlDataSource1" runat="server" 
      <Product ProductID="1"  ProductName="Chai" />
      <Product ProductID="34" ProductName="Ale" />
      <Product ProductID="43" ProductName="Coffee" />

<asp:ListView ID="ListView1" 
              DataSourceID="XmlDataSource1" runat="server" >
    <asp:Label ID="ProductIDLabel" runat="server" 
               Text='<%# Eval("ProductID") %>' />
    <br />
    <asp:Label ID="ProductNameLabel" runat="server" 
               Text='<%# Eval("ProductName") %>' />
    <br />
    <br />

    <div ID="itemPlaceholderContainer" runat="server">
      <span ID="itemPlaceholder" runat="server" />


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. この値は0から始まり、行ごとに1ずつインクリメントされます。This number begins at zero and is incremented by 1 for each row. 各セグメントはアンダースコア文字 () で区切られます。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 に変換すると、Visual Studio によって、サイトの既定値が web.config ファイルの AutoID に自動的に設定されます)。(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.