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 おすすめ入門講座

3つのWebアプリケーションの開発を通して、ASP.NETについて基礎から学べるおすすめの入門講座がこちら☟

【入門者向け】ASP.NET MVCでWebアプリ開発のノウハウを学ぼう!

icon

おすすめ記事はコチラ

スマレジ テックファーム 1

スマレジ テックファーム で Webエンジニアとして勤めている tomoです。 今回は株式会社スマレジや私が所属している 「 スマレジ テックファーム 」についてPRしていきたいと思います。 スマレジ ...

2

FromBody 属性を使用して、 ASP.NET Core(.NET 6)のWebAPIでBodyパラメータのJSONを受け取る方法を解説します。 FromBody 属性 POSTやGETで呼び出さ ...

PC picture 3

ASP.NET Core(.NET 6)でCookie認証のタイムアウトを設定する方法を解説します。 Cookieの有効期限について Cookieには通常はタイムアウト(有効期限)を設定します。 基本 ...

4

ASP.NET Core(.NET 6)でクロスオリジンリクエスト ( CORS )を設定する方法を解説します。 簡単に クロスオリジンリクエスト ( CORS )とは何かについても少し解説したいと思 ...

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