ClientIDMode 列挙型

定義

クライアント スクリプトでアクセスできるコントロールの ClientID を ASP.NET が生成する方法を指定します。

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

フィールド

AutoID 1

ClientID 値は、それぞれの親名前付けコンテナーの ID 値とコントロールの ID 値を連結することにより生成されます。 コントロールの複数のインスタンスが表示されるデータ バインディング シナリオでは、コントロールの ID 値の前にインクリメント値が挿入されます。 各セグメントはアンダースコア文字 (_) で区切られます。 このアルゴリズムは、ASP.NET 4 より前のバージョンの ASP.NET で使用できた唯一のアルゴリズムです。

Inherit 0

コントロールは、ClientIDMode コントロールの NamingContainer 設定を継承します。

Predictable 2

このアルゴリズムは、データ バインド コントロール内のコントロールに対して使用されます。 ClientID 値は、親名前付けコンテナーの ClientID 値とコントロールの ID 値を連結することにより生成されます。 コントロールが複数の行を生成するデータ バインド コントロールである場合は、ClientIDRowSuffix プロパティで指定されたデータ フィールドの値が末尾に追加されます。 GridView コントロールの場合は、複数のデータ フィールドを指定できます。 ClientIDRowSuffix プロパティが空白である場合、データ フィールド値の代わりに連続する番号が末尾に追加されます。 各セグメントはアンダースコア文字 (_) で区切られます。

Static 3

ClientID 値は、ID プロパティの値に設定されます。 コントロールが名前付けコンテナーの場合、そのコントロールは、名前付けコンテナーの階層構造に含まれるすべてのコントロールに対して最上位の階層として使用されます。

次の例は、コントロールに含まれるコントロールをListView示していますLabel。 コントロールでは ListViewClientIDMode プロパティは Predictable に設定され、 ClientIDRowSuffix プロパティは に ProductID設定されます。 クライアント スクリプトから、アクセスしようとしているインスタンスの Label 値に基づいて ProductID 、 の特定のインスタンスにアクセスできます。

この例では、3 つの ProductIDLabel コントロールを含む HTML を作成します。 ページを実行すると、コントロールの ID は次のようになります。

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

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

  <LayoutTemplate>
    <div ID="itemPlaceholderContainer" runat="server">
      <span ID="itemPlaceholder" runat="server" />
    </div>
    <div>
    </div>
  </LayoutTemplate>
  
</asp:ListView>

注釈

コントロールの プロパティを ClientIDMode 設定するときは、 ClientIDMode 列挙体を使用します。 プロパティに割り当てる値によって、 ClientIDMode プロパティの生成方法が ClientID 決まります。 プロパティの ClientID 値はマークアップの 属性として id レンダリングされ、クライアント スクリプトからコントロールにアクセスするために使用する値です。 プロパティにClientIDMode割り当てる値は、サーバー コントロールのプロパティには影響せず、対応する HTML 要素の属性にのみid影響IDします。

ページの ClientIDMode 既定値は Predictable です。 コントロールの ClientIDMode 既定値は Inherit です。

コントロールの既定値は Inherit であるため、既定の生成モードは Predictable です。 (ただし、Visual Studio を使用して Web プロジェクトを以前のバージョンから ASP.NET 4 に変換する場合、Visual Studio では、Web.config ファイルのサイトの既定値が AutoID に自動的に設定されます)。

Web サイト内のすべてのページの値を設定 ClientIDMode するには、サイトのWeb.config ファイルの pages 要素を設定します。 @ Page ディレクティブではClientIDMode、ページの値を設定できます。

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

適用対象

こちらもご覧ください