ClientIDMode 列挙型


クライアント スクリプトでアクセスできるコントロールの ClientID を ASP.NET が生成する方法を指定します。Specifies how ASP.NET generates the ClientID for a control that can be accessed in client script.

public enum class ClientIDMode
public enum ClientIDMode
type ClientIDMode = 
Public Enum ClientIDMode


AutoID 1

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 is the only one that was available in versions of ASP.NET earlier than ASP.NET 4.

Inherit 0

コントロールは、ClientIDMode コントロールの NamingContainer 設定を継承します。The control inherits the ClientIDMode setting of its NamingContainer control.

Predictable 2

このアルゴリズムは、データ バインド コントロール内のコントロールに対して使用されます。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 ().

Static 3

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.

次の例は、 Label コントロールに含まれるコントロールを示してい ListView ます。The following example shows Label controls that are contained in a ListView control. コントロールで ListView ClientIDMode は、プロパティは予測可能に設定され、 ClientIDRowSuffix プロパティはに設定され ProductID ます。On the ListView control, the ClientIDMode property is set to Predictable and the ClientIDRowSuffix property is set to ProductID. クライアントスクリプトからは、 Label ProductID アクセスしようとしているインスタンスの値に基づいて、の特定のインスタンスにアクセスできます。From client script, you can access a particular instance of a Label based on the ProductID value of the instance that you are trying to access.

この例では、3つのコントロールを持つ HTML を作成し ProductIDLabel ます。This example creates HTML with three ProductIDLabel controls. ページが実行されると、コントロールの Id は次のようになります。When the page runs, the IDs for the controls will be the following:

  • 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" />


ClientIDModeコントロールのプロパティを設定するときに、列挙体を使用し ClientIDMode ます。You use the ClientIDMode enumeration when you set the ClientIDMode property for a control. プロパティに割り当てる値によって、 ClientIDMode プロパティがどのように生成されるか ClientID が決まります。The value that you assign to the ClientIDMode property determines how the ClientID property is generated. プロパティの値は、 ClientID マークアップで属性として表示され、 id クライアントスクリプトからコントロールにアクセスするために使用する値です。The value of the ClientID property is rendered as the id attribute in markup, and it is the value that you use to access the control from client script. プロパティに割り当てる値は、 ClientIDMode サーバーコントロールのプロパティには影響しません。これは、 ID id 対応する HTML 要素の属性のみです。The value that you assign to the ClientIDMode property does not affect the ID property of the server control, only the id attribute of the corresponding HTML element.

ページのの既定値 ClientIDMode は予測可能です。The default value of ClientIDMode for a page is Predictable. コントロールのの既定値 ClientIDMode は Inherit です。The default value of ClientIDMode for a control is Inherit.

コントロールの既定値は Inherit であるため、既定の生成モードは予測可能です。Because the default for controls is Inherit, the default generation mode is Predictable. (ただし、Visual Studio を使用して、Web プロジェクトを以前のバージョンの ASP.NET 4 に変換すると、Visual Studio によって、サイトの既定値が自動的に AutoID Id に設定されます)。(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.)

ClientIDModeサイトの Web.config ファイルのpages要素を設定することによって、Web サイトのすべてのページの値を設定できます。You can set the ClientIDMode value for all pages in a Web site by setting the pages element in the site's Web.config file. ClientIDModeページの値は、 @ pageディレクティブで設定できます。You can set the ClientIDMode value for a page in the @ Page directive.

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