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

【 ASP.NET 】ListView の中の Button コントロールでCommand Argument を使用して引数を受渡す方法

ASP.NET Web Forms

今回は、ASP.NETにおけるList View内のButtonコントロールでCommand Argumentを使用した複数の引数を受け渡す方法について書いていきたいと思います。

ボタンをクリックした際にサーバー側にいくつかの情報をまとめて送信したい時に使うと便利だと思います。

Command Argumentの設定と受渡し方法

まずはじめに、Command Argumenteに設定した引数を受け渡す方法がこちらです。
※サーバー側はVB.netで記述しています。

それぞれのファイルの記述内容についていくつか補足を書いておきます。

・aspxファイル

<asp:ListView ID="ListView" runat="server" OnItemCommand="lnkButtonCommand">
  <LayoutTemplate>
      <asp:PlaceHolder ID="itemPlaceholder" runat="server" />
  </LayoutTemplate>
  <ItemTemplate>
    <asp:LinkButton ID="Button" runat="server" CommandName="ButtonArg"
        CommandArgument='<%#Eval("value")%>' Text="Button1" OnItemCommand="lnkButton_Click"></asp:LinkButton>
  </ItemTemplate>
</asp:ListView>
  • OnItemCommand → ListView内のButtonがクリックされた時に発生するイベント
  • CommandArgument → OnItemCommandに設定したボタンクリックイベントに受け渡す値を設定する

・サーバー側

public Sub lnkButtonCommand(Byval sender As Object, Byval e As ListViewCommandEventArgs)
    Dim val As String = (e.CommandArgument).ToString
    
    '処理を書く
End Sub
  • e.CommandArgument → ListViewCommandEventArgsのCommandArgumentに「aspxファイル」のCommandArgumentプロパティ値で設定した値が格納されている

引数の複数設定と受渡方法

次に、引数を複数設定して受け渡したい場合の方法についても以下に載せておきます。

・aspxファイル

<asp:ListView ID="ListView" runat="server" OnItemCommand="lnkButtonCommand">
  <LayoutTemplate>
      <asp:PlaceHolder ID="itemPlaceholder" runat="server" />
  </LayoutTemplate>
  <ItemTemplate>
    <asp:LinkButton ID="Button" runat="server" CommandName="ButtonArg"
        CommandArgument='<%#Eval("value1")> + ";" +Eval("value2"%)' Text="Button1" OnItemCommand="lnkButton_Click"></asp:LinkButton>
  </ItemTemplate>
</asp:ListView>

・サーバー側

public Sub lnkButtonCommand(Byval sender As Object, Byval e As ListViewCommandEventArgs)
    Dim arg() As String = (e.CommandArgument).ToString.Split(';')
    
    '処理を書く
End Sub


ここでは、aspx側でCommandArgumentの引数に";"を区切り文字として複数の引数を設定しておき、

サーバー側がその引数値(e.CommandArgument)を";"で区切って配列に格納することで複数設定した引数を取得することが出来ます。

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#, プログラミング
-, ,