Visual C# .NETのRepeater コントロールについて

リストのデータを繰り返し画面に表示する場合に、for()文を使っていましたが、
Visual C# .NETでRepeaterコントロールを使って、シンプルに繰り返し処理を書く方法があったのでご紹介いたします。
※データベースは、Microsoft SQL Serverへの接続で説明しています。

表示するデータの内容

表示するデータは以下の3件とします。

データベース名:authors
au_id              au_name        au_from       au_hobby      icon
-------------------------------------------------------------------------
tarou_yamamoto     山本 太郎     日本          旅行          1
hanako_yamamda     山田 花子     日本          映画鑑賞      3
micheal_mead       Micheal Mead   アメリカ      ダンス        2

index.aspx.csの記述

データベースの内容を取得し、画面にデータバインドする処理を記します。
parentRepeaterが、次に説明するデータ表示部分のidと同じになっています。

public void Page_Load(object sender, EventArgs e)
{
     //コネクション取得
     SqlConnection cnn = 
         new SqlConnection("server=(local);database=pubs; Integrated Security=SSPI");
     SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors",cnn);

     //Create and fill the DataSet.
     DataSet ds = new DataSet();
     cmd1.Fill(ds,"authors");

     //データベースから取得したデータを画面側にセット
     parentRepeater.DataSource = ds.Tables["authors"];
     parentRepeater.DataBind();

     //コネクションクローズ
     cnn.Close();
}

index.aspxの記述

以下のようにfor()文を使わないで、シンプルなコードで繰り返し処理が可能です。

<table class="p" border="1" cellspacing="0" cellpadding="3" width="25%">
<!-- 項目表示 -->
<tr class="ss">
    <th>アイコン</th>
    <th>名前(出身地)</th>
    <th>趣味</th>
</tr>
<!-- 繰り返し処理部分 start -->
<asp:Repeater id="parentRepeater" runat="server">
<tr align="center">
    <td>
       <!-- アイコン -->
       <img src="./img/<%# DataBinder.Eval(Container.DataItem, "icon") %>.gif">
    </td>
    <td>
       <!-- 名前 -->
        <%# DataBinder.Eval(Container.DataItem, "au_name") %>
       <!-- 出身地 --><%# DataBinder.Eval(Container.DataItem, "au_from") %></td>
    <td>
       <!-- 趣味 -->
        <%# DataBinder.Eval(Container.DataItem, "au_hobby") %>
    </td>
</tr>
</asp:Repeater>
<!-- 繰り返し処理部分 end -->
</table>

画面の表示

データが表示されました。


※画像は、コミューバさん「http://www.zigu-web.com/sozai/index.html」よりお借りしました。



次回は、Java/JSPでもfor()文を使わないで、を使ってシンプルに繰り返し処理を記述する方法をご紹介いたします。