次の方法で共有


Repeater Web サーバー コントロールの宣言構文

更新 : 2007 年 11 月

リストに表示する各項目に、指定したテンプレートを繰り返し適用することによって、レイアウトをカスタマイズできるデータ バインド リスト コントロールを作成します。

<asp:Repeater
    DataMember="string"
    DataSource="string"
    DataSourceID="string"
    EnableTheming="True|False"
    EnableViewState="True|False"
    ID="string"
    OnDataBinding="DataBinding event handler"
    OnDisposed="Disposed event handler"
    OnInit="Init event handler"
    OnItemCommand="ItemCommand event handler"
    OnItemCreated="ItemCreated event handler"
    OnItemDataBound="ItemDataBound event handler"
    OnLoad="Load event handler"
    OnPreRender="PreRender event handler"
    OnUnload="Unload event handler"
    runat="server"
    Visible="True|False"
>
        <AlternatingItemTemplate>
            <!-- child controls -->
        </AlternatingItemTemplate>
        <FooterTemplate>
            <!-- child controls -->
        </FooterTemplate>
        <HeaderTemplate>
            <!-- child controls -->
        </HeaderTemplate>
        <ItemTemplate>
            <!-- child controls -->
        </ItemTemplate>
        <SeparatorTemplate>
            <!-- child controls -->
        </SeparatorTemplate>
</asp:Repeater>

解説

Repeater コントロールを使用して、テンプレートを指定した基本的なデータ バインド リストを作成します。Repeater コントロールには、組み込みのレイアウトやスタイルがありません。すべての HTML レイアウト、書式指定、およびスタイル タグをコントロールのテンプレート内で明示的に宣言する必要があります。

Repeater コントロールは、他のデータ リスト コントロールとは異なり、テンプレート内に HTML フラグメントを配置できます。これによって、テーブルなどの複雑な HTML 構造を作成できます。たとえば、HTML テーブルの中にリストを作成するには、まず HeaderTemplate に <table> タグを挿入してテーブルを作成します。次に、ItemTemplate に <tr> タグ、<td> タグ、およびデータ バインド項目を挿入し、テーブルの行と列を作成します。テーブル内の項目の外観を交互に変更するには、内容は ItemTemplate と同じで、違うスタイルを指定したAlternatingItemTemplate を作成します。最後に、FooterTemplate に </table> タグを挿入して、テーブルを完成させます。

Repeater コントロールの各種テンプレートを次の表に一覧表示します。

テンプレート

説明

AlternatingItemTemplate

ItemTemplate 要素に似ていますが、Repeater コントロール内の 1 行おきの行 (交互の項目) に適用されます。スタイル プロパティを設定して、AlternatingItemTemplate 要素に別の外観を指定できます。

FooterTemplate

すべてのデータ連結行が表示された後で 1 回だけ表示される要素。一般的には、</table> などにより、HeaderTemplate 項目で開かれた要素を閉じるために使用します。

c012haty.alert_note(ja-jp,VS.90).gifメモ :
FooterTemplate はデータにバインドできません。

HeaderTemplate

データ バインド行を表示する前に 1 回だけ表示される要素。一般的には、テーブルなどのコンテナ要素を開始します。

c012haty.alert_note(ja-jp,VS.90).gifメモ :
HeaderTemplate 項目はデータにバインドできません。

ItemTemplate

データ ソースの各行に対して一度ずつ表示される要素。ItemTemplate でデータを表示するには、1 つ以上の Web サーバー コントロールを宣言し、それらのデータ バインディング式を、Repeater コントロール (コンテナ コントロール) の DataSource のフィールドに評価されるように設定します。名前が含まれているフィールドを Label コントロールに表示する宣言の例を次に示します。

First Name:
<asp:Label runat="server"
   Text="<%# Container.DataItem.FirstName %>" />

SeparatorTemplate

行間に表示される要素。一般的には、改行 ((<br> タグ)、水平線 ((<hr> タグ) などです。

c012haty.alert_note(ja-jp,VS.90).gifメモ :
SeparatorTemplate 項目はデータにバインドできません。

Repeater コントロールには、選択機能や編集機能は組み込まれていません。コントロールの ItemCommand イベントのハンドラを作成して、テンプレートからコントロールに送信されるコントロール イベントを処理できます。

Item テンプレートとAlternatingItem テンプレートは、コントロールの DataSource または DataSourceID プロパティで参照されるデータ構造にバインドされます (Header, Footer テンプレートと Separator テンプレートはデータにバインドできません)。Repeater コントロールの DataSource プロパティが設定されているが、データが返されない場合、コントロールは Header テンプレートと Footer テンプレートを表示しますが、アイテムは表示しません。DataSource プロパティが設定されていない場合、Repeater コントロールは表示されません。

c012haty.alert_caution(ja-jp,VS.90).gif注意 :

テキストは、Repeater コントロールに表示される前には HTML エンコードされません。これにより、テキストの HTML タグ内にスクリプトを埋め込むことができるようになります。コントロールの値がユーザーによって入力された場合は、セキュリティの脆弱性への対策として、入力された値を必ず検証してください。

Repeater Web サーバー コントロールのプロパティとイベントの詳細については、Repeater クラスのドキュメントを参照してください。

使用例

DataSourceID プロパティを使用して、Repeater コントロールのデータ ソースを指定する方法を次のコード例に示します。DataSourceID プロパティは、データの取得に使用される SqlDataSource コントロールの ID プロパティに設定されます。ページが読み込まれると、Repeater コントロールは SqlDataSource コントロールにより指定されたデータ ソースに自動的にバインドし、データがユーザーに表示されます。

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>Repeater.DataSourceID Property Example</title>
</head>

  <body>
    <form id="Form1" runat="server">

      <h3>Repeater.DataSourceID Property Example</h3>

      <asp:repeater id="Repeater1"       
        datasourceid="SqlDataSource1"
        runat="server">

        <headertemplate>
          <table border="1">
            <tr>
              <td><b>Product ID</b></td>
              <td><b>Product Name</b></td>
            </tr>
        </headertemplate>

        <itemtemplate>
          <tr>
            <td> <%# Eval("ProductID") %> </td>
            <td> <%# Eval("ProductName") %> </td>
          </tr>
        </itemtemplate>

        <footertemplate>
          </table>

        </footertemplate>
      </asp:repeater>

            <asp:sqldatasource id="SqlDataSource1"          
            connectionstring="<%$ ConnectionStrings:NorthWindConnection%>" 
        selectcommand="SELECT ProductID, ProductName FROM [Products] Where ProductID <= 10"
        runat="server">
      </asp:sqldatasource>

    </form>      
  </body>
</html>
<%@ page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>Repeater.DataSourceID Property Example</title>
</head>

  <body>
    <form id="Form1" runat="server">

      <h3>Repeater.DataSourceID Property Example</h3>

      <asp:repeater id="Repeater1"       
        datasourceid="SqlDataSource1"
        runat="server">

        <headertemplate>
          <table border="1">
            <tr>
              <td><b>Product ID</b></td>
              <td><b>Product Name</b></td>
            </tr>
        </headertemplate>

        <itemtemplate>
          <tr>
            <td> <%# Eval("ProductID") %> </td>
            <td> <%# Eval("ProductName") %> </td>
          </tr>
        </itemtemplate>

        <footertemplate>
          </table>

        </footertemplate>
      </asp:repeater>

            <asp:sqldatasource id="SqlDataSource1"          
            connectionstring="<%$ ConnectionStrings:NorthWindConnection%>" 
        selectcommand="SELECT ProductID, ProductName FROM [Products] Where ProductID <= 10"
        runat="server">
      </asp:sqldatasource>

    </form>      
  </body>
</html>

参照

参照

Repeater

その他の技術情報

Web サーバー コントロール構文