ASP.NET C# プログラミング

【ASP.NET】Reapeater 内の各コントロールの情報を取得する方法

ASP.NETのRepeater内のコントロールの特定のコントロールに対してアクセスして、その情報を取得したり編集したりする場面があると思います。

そこで、今回はASP.NETのRepeaterコントロール内にある各コントロールの情報を取得する方法を解説していきます。
※VB.NETで記述して解説します

Reapeaterコントロール(aspxファイル)の記述方法

aspxファイルにReapeaterコントロールを記述した際、

当然ながらReapeater内の各コントロールには「runat="server"」を記述してください。(ASP.NET側のサーバー処理でアクセスするために必要です)

<asp:Repeater ID="Repeater" runat="server">
  <ItemTemplate>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" />
    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
  </ItemTemplate>
</asp:Repeater>

FindControlで各コントロールにアクセスする

Repeaterコントロール内の各コントロールの情報を取得するためには、

まずはじめに、対象となるRepeaterコントロールを取得(Repeater.Items)し、それをFor文で回します。

そしてRepeater内の各コントロールの情報を取得するためには「FindControl」メソッドを使用する必要があります。

FindControlでは、()内の引数に対象となるコントロールのIDを指定することでそのコントロールの情報を取得することができます。

ただし、その場合、「CType(item.FindControl("Button1"), Button)」のように

CTypeの引数でFindControlで取得するコントロールの種類を指定して変換する必要があります。

For Each item As RepeaterItem In Repeater.Items
    Dim TextBox1 As TextBox = CType(item.FindControl("TextBox1"), TextBox)
    Dim Button1 As Button = CType(item.FindControl("Button1"), Button)
Next

おすすめ記事はコチラ

ASP.NET Web Forms 1

この記事ではマイクロソフト社が開発・提供しているWebアプリケーション開発用フレームワーク「ASP.NET」の「Web Forms」を「MVC」と比較しながらメリットやデメリット等を含めて解説していき ...

C#VB 2

今回はC#(ver.7.0以降)、VB(ver. 15以降)でforeachループ内で繰り返し回数を参照する方法について解説していきます。 従来の記述方法とよりスマートに記述する方法の2通りを以下にな ...

3

この記事ではSQL Serverで使用できる「STUFF」という便利な関数の使い方について、解説していきます! 他にも便利な関数があれば、別記事にて使用方法を解説していきたいと思います! STUFF ...

4

今回はSQL ServerでデータをXML形式で取得する方法について書いていきます。 FOR XML PATH SQL Serverには「FOR XML PATH」という関数があって、SQL分の末尾に ...

-ASP.NET, C#, プログラミング
-, ,