次の方法で共有


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 要素を設定します。 ページの値は ClientIDMode@ Page ディレクティブで設定できます。

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

適用対象

こちらもご覧ください