FormViewCommandEventHandler デリゲートとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > FormViewCommandEventHandler デリゲートの意味・解説 

FormViewCommandEventHandler デリゲート

メモ : このデリゲートは、.NET Framework version 2.0新しく追加されたものです。

FormView コントロールの ItemCommand イベント処理するメソッド表します。このクラス継承できません。

名前空間: System.Web.UI.WebControls
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public Delegate Sub FormViewCommandEventHandler
 ( _
    sender As Object, _
    e As FormViewCommandEventArgs _
)
Dim instance As New FormViewCommandEventHandler(AddressOf
 HandlerMethod)
public delegate void FormViewCommandEventHandler
 (
    Object sender,
    FormViewCommandEventArgs e
)
public delegate void FormViewCommandEventHandler
 (
    Object^ sender, 
    FormViewCommandEventArgs^ e
)
/** @delegate */
public delegate void FormViewCommandEventHandler
 (
    Object sender, 
    FormViewCommandEventArgs e
)
JScript では、デリゲート使用できますが、新規に宣言することはできません。

パラメータ

sender

イベントソース

e

イベント データ格納している FormViewCommandEventArgs。

解説解説

ItemCommand イベントは、FormView コントロール内のボタン コントロールクリックされた場合発生します。これにより、このイベント発生するたびにカスタム ルーチン実行するイベント処理メソッドを提供できます

FormView コントロール内のボタンから、コントロール組み込み機能一部呼び出すこともできます。これらのいずれか操作実行するには、ボタンCommandName プロパティ次の表の値のいずれかに設定します

前述の表に示されているボタンクリックされると ItemCommand イベント発生しますが、表に示されているイベント処理して操作を行うことをお勧めます。

FormViewCommandEventHandler デリゲート作成する場合は、イベント処理するメソッド識別してくださいイベントイベント ハンドラ関連付けるには、デリゲートインスタンスイベント追加しますデリゲート削除しない限り、そのイベント発生すると常にイベント ハンドラ呼び出されます。イベント ハンドラ デリゲート詳細については、「イベントデリゲート」を参照してください

使用例使用例

FormViewCommandEventHandler デリゲートを、プログラムによって FormView コントロールItemCommand イベント追加する方法次の例に示します

<%@ page language="VB" %>
<%@ import namespace="System.Data"%>

<script runat="server">
  
  ' To dynamically create a template for a FormView control,
  ' you must create a custom template class to represent 
  ' the template. This template class represents the item
  ' template for a FormView control.
  Private NotInheritable Class
 EmployeeTemplate
    Implements ITemplate
    
    ' When implementing the ITemplate interface, you must
    ' implement the InstantiateIn method. The FormView
    ' control calls this method to create the template's 
    ' content. 
    Sub InstantiateIn(ByVal container As
 Control) Implements ITemplate.InstantiateIn
    
      ' Create the child controls contained in the template.
      ' For this example, the item template displays the
      ' FirstName and LastName fields from the data source.
      ' To support data-binding, create event handlers 
      ' for the DataBinding event of each child control.
      ' The event handlers must bind the appropriate value 
      ' to each control.
      Dim firstNameLabel As New
 Label()
      firstNameLabel.ID = "FirstNameLabel"
      AddHandler firstNameLabel.DataBinding, AddressOf
 FirstNameLabel_DataBinding
      
      Dim nameLineBreak As New
 LiteralControl("<br/>")
      Dim buttonLineBreak As New
 LiteralControl("<br/>")

      Dim lastNameLabel As New
 Label()
      lastNameLabel.ID = "LastNameLabel"
      AddHandler lastNameLabel.DataBinding, AddressOf
 LastNameLabel_DataBinding

      ' Create a custom button control to display in the item
      ' template. When a button within a FormView control is 
      ' clicked, the ItemCommand event is raised. The ItemCommand
      ' event is used to handle the clicking of this button.
      Dim displayButton As New
 Button()
      displayButton.ID = "AddButton"
      displayButton.CommandName = "Display"
      displayButton.Text = "Display Employee"

      ' Add the controls to the Controls collection of the 
      ' container control.
      container.Controls.Add(firstNameLabel)
      container.Controls.Add(nameLineBreak)
      container.Controls.Add(lastNameLabel)
      container.Controls.Add(buttonLineBreak)
      container.Controls.Add(displayButton)

    End Sub
    
    ' This event handler binds the value of the FirstName field
    ' to the FirstNameLabel Label control displayed in the template.
    Private Sub FirstNameLabel_DataBinding(ByVal
 sender As Object, ByVal
 e As EventArgs)

      ' Use the sender parameter to retrieve the Label control
      ' being bound to data.
      Dim firstNameLabelControl As Label =
 CType(sender, Label)

      ' Retrieve the value to bind to the Label control. First,
      ' use the NamingContainer property to retrieve the parent 
      ' control of the Label control. In this example, the parent 
      ' control is the FormView control.
      Dim formViewContainer As FormView = CType(firstNameLabelControl.NamingContainer,
 FormView)
      
      ' Get the data item bound to the FormView control.
      Dim rowView As DataRowView = CType(formViewContainer.DataItem,
 DataRowView)

      ' Use the data item to retrieve the value of the FirstName field.
      ' Set the Text property of the Label control to this value.  
      
      firstNameLabelControl.Text = rowView("FirstName").ToString()
  
    End Sub

    ' This event handler binds the value of the LastName field
    ' to the LastNameLabel Label control displayed in the template.
    Private Sub LastNameLabel_DataBinding(ByVal
 sender As Object, ByVal
 e As EventArgs)

      ' Use the sender parameter to retrieve the Label control
      ' being bound to data.
      Dim lastNameLabelControl As Label = CType(sender,
 Label)

      ' Retrieve the value to bind to the Label control. First,
      ' use the NamingContainer property to retrieve the parent 
      ' control of the Label control. In this example, the parent 
      ' control is the FormView control.
      Dim formViewContainer As FormView = CType(lastNameLabelControl.NamingContainer,
 FormView)

      ' Get the data item bound to the FormView control.
      Dim rowView As DataRowView = CType(formViewContainer.DataItem,
 DataRowView)

      ' Use the data item to retrieve the value of the LastName field.
      ' Set the Text property of the Label control to this value.  
       
      lastNameLabelControl.Text = rowView("LastName").ToString()
    
    End Sub

  End Class
  
  Sub Page_Load(ByVal sender As
 Object, ByVal e As EventArgs)
      
    ' Create a new FormView object.
    Dim employeesFormView As New
 FormView()
    
    ' Set the FormView object's properties.
    employeesFormView.ID = "EmployeesFormView"
    employeesFormView.DataSourceID = "EmployeeSource"
    employeesFormView.AllowPaging = True
    employeesFormView.HeaderText = "Employee Name"
    
    ' Programmatically register the event handlers for the 
    ' FormView control.
    AddHandler employeesFormView.ItemCommand, AddressOf
 EmployeesFormView_ItemCommand
    AddHandler employeesFormView.PageIndexChanged, AddressOf
 EmployeesFormView_PageIndexChanged

    ' Create the dynamic template using the custom template class.
    employeesFormView.ItemTemplate = New EmployeeTemplate()

    ' Add the FormView object to the Controls collection
    ' of the PlaceHolder control.
    FormViewPlaceHolder.Controls.Add(employeesFormView)

  End Sub

  Sub EmployeesFormView_ItemCommand(ByVal sender
 As Object, ByVal e As
 FormViewCommandEventArgs)

    ' The ItemCommand event is raised when any button within
    ' the FormView control is clicked. Use the CommandName property
 
    ' to determine which button was clicked. 
    If e.CommandName = "Display"
 Then
      
      ' Use the sender parameter to get the FormView control
      ' that contains the button clicked.
      Dim employeesFormView As FormView = CType(sender,
 FormView)

      ' Use the Row property to retrieve the data row.
      Dim row As FormViewRow = employeesFormView.Row

      ' Retrieve the FirstNameLabel and LastNameLabel Label controls
 
      ' from the data row.
      Dim firstNameLabel As Label = CType(row.FindControl("FirstNameLabel"),
 Label)
      Dim lastNameLabel As Label = CType(row.FindControl("LastNameLabel"),
 Label)

      If firstNameLabel IsNot Nothing And
 lastNameLabel IsNot Nothing Then
      
        ' Display the employee's name.
        MessageLabel.Text = firstNameLabel.Text & " "
 & _
        lastNameLabel.Text()
        
      End If
      
    End If
    
  End Sub
  
  Sub EmployeesFormView_PageIndexChanged(ByVal
 sender As Object, ByVal
 e As EventArgs)
    
    ' Clear the message label when the user navigates to 
    ' a different record.
    MessageLabel.Text = ""

  End Sub

</script>

<html> 
  <body>
    <form runat="server">
        
      <h3>FormViewCommandEventHandler Example</h3>
        
      <!-- Use a PlaceHolder control as the container for
 the -->
      <!-- dynamically generated FormView control.            -->       
      <asp:placeholder id="FormViewPlaceHolder"
        runat="server"/>
            
      <br/><br/>
      
      <asp:label id="MessageLabel"
        forecolor="Red"
        runat="server"/>
            
      <!-- This example uses Microsoft SQL Server and connects
  -->
      <!-- to the Northwind sample database. Use an ASP.NET
     -->
      <!-- expression to retrieve the connection string
 value   -->
      <!-- from the Web.config file.                            -->
      <asp:sqldatasource id="EmployeeSource"
        selectcommand="Select [EmployeeID], [LastName], [FirstName]
 From [Employees]"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
 
        runat="server"/>
          
    </form>
  </body>
</html>

<%@ page language="C#" %>
<%@ import namespace="System.Data"%>

<script runat="server">
  
  // To dynamically create a template for a FormView control,
  // you must create a custom template class to represent 
  // the template. This template class represents the item
  // template for a FormView control.
  private sealed class EmployeeTemplate : ITemplate
  {
    
    // When implementing the ITemplate interface, you must
    // implement the InstantiateIn method. The FormView
    // control calls this method to create the template's 
    // content. 
    void ITemplate.InstantiateIn(Control container)
    {
      // Create the child controls contained in the template.
      // For this example, the item template displays the
      // FirstName and LastName fields from the data source.
      // To support data binding, create event handlers 
      // for the DataBinding event of each child control.
      // The event handlers must bind the appropriate value 
      // to each control.
      Label firstNameLabel = new Label();
      firstNameLabel.ID = "FirstNameLabel";
      firstNameLabel.DataBinding += new EventHandler(FirstNameLabel_DataBinding);
      
      LiteralControl nameLineBreak = new LiteralControl("<br/>");
      LiteralControl buttonLineBreak = new LiteralControl("<br/>");

      Label lastNameLabel = new Label();
      lastNameLabel.ID = "LastNameLabel";
      lastNameLabel.DataBinding += new EventHandler(LastNameLabel_DataBinding);

      // Create a custom button control to display in the item
      // template. When a button within a FormView control is 
      // clicked, the ItemCommand event is raised. The ItemCommand
      // event is used to handle the clicking of this button.
      Button displayButton = new Button();
      displayButton.ID = "AddButton";
      displayButton.CommandName = "Display";
      displayButton.Text = "Display Employee";

      // Add the controls to the Controls collection of the 
      // container control.
      container.Controls.Add(firstNameLabel);
      container.Controls.Add(nameLineBreak);
      container.Controls.Add(lastNameLabel);
      container.Controls.Add(buttonLineBreak);
      container.Controls.Add(displayButton);

    }
    
    // This event handler binds the value of the FirstName field
    // to the FirstNameLabel Label control displayed in the template.
    private void FirstNameLabel_DataBinding(Object
 sender, EventArgs e)
    {
      // Use the sender parameter to retrieve the Label control
      // being bound to data.
      Label firstNameLabelControl = (Label)sender;

      // Retrieve the value to bind to the Label control. First,
      // use the NamingContainer property to retrieve the parent 
      // control of the Label control. In this example, the parent 
      // control is the FormView control.
      FormView formViewContainer = (FormView)firstNameLabelControl.NamingContainer;
      
      // Get the data item bound to the FormView control.
      DataRowView rowView = (DataRowView)formViewContainer.DataItem;

      // Use the data item to retrieve the value of the FirstName field.
      // Set the Text property of the Label control to this value. 
       
      firstNameLabelControl.Text = rowView["FirstName"].ToString();
    }

    // This event handler binds the value of the LastName field
    // to the LastNameLabel Label control displayed in the template.
    private void LastNameLabel_DataBinding(Object
 sender, EventArgs e)
    {
      // Use the sender parameter to retrieve the Label control
      // being bound to data.
      Label lastNameLabelControl = (Label)sender;

      // Retrieve the value to bind to the Label control. First,
      // use the NamingContainer property to retrieve the parent 
      // control of the Label control. In this example, the parent 
      // control is the FormView control.
      FormView formViewContainer = (FormView)lastNameLabelControl.NamingContainer;

      // Get the data item bound to the FormView control.
      DataRowView rowView = (DataRowView)formViewContainer.DataItem;

      // Use the data item to retrieve the value of the LastName field.
      // Set the Text property of the Label control to this value. 
        
      lastNameLabelControl.Text = rowView["LastName"].ToString();
    }
    
  }

  void Page_Load(Object sender, EventArgs e)
  {
    
    // Create a new FormView object.
    FormView employeesFormView = new FormView();
    
    // Set the FormView object's properties.
    employeesFormView.ID = "EmployeesFormView";
    employeesFormView.DataSourceID = "EmployeeSource";
    employeesFormView.AllowPaging = true;
    employeesFormView.HeaderText = "Employee Name";
    
    // Programmatically register the event handlers for the 
    // FormView control.
    employeesFormView.ItemCommand += new FormViewCommandEventHandler(EmployeesFormView_ItemCommand);
    employeesFormView.PageIndexChanged += new EventHandler(EmployeesFormView_PageIndexChanged);

    // Create the dynamic template using the custom template class.
    employeesFormView.ItemTemplate = new EmployeeTemplate();

    // Add the FormView object to the Controls collection
    // of the PlaceHolder control.
    FormViewPlaceHolder.Controls.Add(employeesFormView);

  }

  void EmployeesFormView_ItemCommand(Object sender, FormViewCommandEventArgs
 e)
  {

    // The ItemCommand event is raised when any button within
    // the FormView control is clicked. Use the CommandName property
 
    // to determine which button was clicked. 
    if (e.CommandName == "Display")
    {
      
      // Use the sender parameter to get the FormView control
      // that contains the button clicked.
      FormView employeesFormView = (FormView)sender;

      // Use the Row property to retrieve the data row.
      FormViewRow row = employeesFormView.Row;

      // Retrieve the FirstNameLabel and LastNameLabel Label controls
 
      // from the data row.
      Label firstNameLabel = (Label)row.FindControl("FirstNameLabel");
      Label lastNameLabel = (Label)row.FindControl("LastNameLabel");

      if (firstNameLabel != null &&
 lastNameLabel != null)
      {
        // Display the employee's name.
        MessageLabel.Text = firstNameLabel.Text + " " + 
          lastNameLabel.Text;
      }
      
    }
    
  }

  void EmployeesFormView_PageIndexChanged(Object sender, EventArgs
 e)
  {
    
    // Clear the message label when the user navigates to 
    // a different record.
    MessageLabel.Text = "";

  }

</script>

<html> 
  <body>
    <form runat="server">
        
      <h3>FormViewCommandEventHandler Example</h3>
        
      <!-- Use a PlaceHolder control as the container for the
 -->
      <!-- dynamically generated FormView control.            -->       
      <asp:placeholder id="FormViewPlaceHolder"
        runat="server"/>
            
      <br/><br/>
      
      <asp:label id="MessageLabel"
        forecolor="Red"
        runat="server"/>
            
      <!-- This example uses Microsoft SQL Server and connects  -->
      <!-- to the Northwind sample database. Use an ASP.NET     -->
      <!-- expression to retrieve the connection string value
   -->
      <!-- from the Web.config file.                            -->
      <asp:sqldatasource id="EmployeeSource"
        selectcommand="Select [EmployeeID], [LastName], [FirstName] From [Employees]"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
 
        runat="server"/>
          
    </form>
  </body>
</html>

FormViewCommandEventHandler デリゲートを、宣言によって FormView コントロールItemCommand イベント追加する方法次の例に示します

<%@ page language="VB" %>
<%@ import namespace="System.Data"%>

<script runat="server">

  Sub EmployeesFormView_ItemCommand(ByVal sender
 As Object, ByVal e As
 FormViewCommandEventArgs) Handles EmployeesFormView.ItemCommand

    ' The ItemCommand event is raised when any button within
    ' the FormView control is clicked. Use the CommandName property
 
    ' to determine which button was clicked. 
    If e.CommandName = "Display"
 Then

      ' Use the Row property to retrieve the data row.
      Dim row As FormViewRow = EmployeesFormView.Row

      ' Retrieve the FirstNameLabel and LastNameLabel Label controls
 
      ' from data row.
      Dim firstNameLabel As Label = CType(row.FindControl("FirstNameLabel"),
 Label)
      Dim lastNameLabel As Label = CType(row.FindControl("LastNameLabel"),
 Label)

      If firstNameLabel IsNot Nothing And
 lastNameLabel IsNot Nothing Then

        ' Display the employee's name.
        MessageLabel.Text = firstNameLabel.Text & " "
 & _
          lastNameLabel.Text()
        
      End If
      
    End If
    
  End Sub

  Sub EmployeesFormView_PageIndexChanged(ByVal
 sender As Object, ByVal
 e As EventArgs) Handles EmployeesFormView.PageIndexChanged
    
    ' Clear the message label when the user navigates to 
    ' a different record.
    MessageLabel.Text = ""

  End Sub

</script>

<html> 
  <body>
    <form runat="server">
        
      <h3>FormViewCommandEventHandler Example</h3>
        
      <!-- Use a PlaceHolder control as the container for
 the -->
      <!-- dynamically generated FormView control.            -->       
      <asp:formview id="EmployeesFormView"
        datasourceid="EmployeeSource"
        allowpaging="True"
        headertext="Employee Name"
        runat="server">
      
        <itemtemplate>
        
          <asp:label id="FirstNameLabel"
            text='<%# Eval("FirstName") %>'
            runat="server"/>
          <br/>
          <asp:label id="LastNameLabel"
            text='<%# Eval("LastName") %>'
            runat="server"/>
          <br/>
          <asp:button
            id="DisplayButton"
            text="Display Employee"
            commandname="Display" 
            runat="server"/>
        
        </itemtemplate>
        
      </asp:formview>
            
      <br/><br/>
      
      <asp:label id="MessageLabel"
        forecolor="Red"
        runat="server"/>
            
      <!-- This example uses Microsoft SQL Server and connects
  -->
      <!-- to the Northwind sample database. Use an ASP.NET
     -->
      <!-- expression to retrieve the connection string
 value   -->
      <!-- from the Web.config file.                            -->
      <asp:sqldatasource id="EmployeeSource"
        selectcommand="Select [EmployeeID], [LastName], [FirstName]
 From [Employees]"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
 
        runat="server"/>
          
    </form>
  </body>
</html>

<%@ page language="C#" %>
<%@ import namespace="System.Data"%>

<script runat="server">

  void EmployeesFormView_ItemCommand(Object sender, FormViewCommandEventArgs
 e)
  {

    // The ItemCommand event is raised when any button within
    // the FormView control is clicked. Use the CommandName property
 
    // to determine which button was clicked. 
    if (e.CommandName == "Display")
    {

      // Use the Row property to retrieve the data row.
      FormViewRow row = EmployeesFormView.Row;

      // Retrieve the FirstNameLabel and LastNameLabel Label controls
 
      // from data row.
      Label firstNameLabel = (Label)row.FindControl("FirstNameLabel");
      Label lastNameLabel = (Label)row.FindControl("LastNameLabel");

      if (firstNameLabel != null &&
 lastNameLabel != null)
      {
        // Display the employee's name.
        MessageLabel.Text = firstNameLabel.Text + " " + 
          lastNameLabel.Text;
      }
      
    }
    
  }

  void EmployeesFormView_PageIndexChanged(Object sender, EventArgs
 e)
  {
    
    // Clear the message label when the user navigates to 
    // a different record.
    MessageLabel.Text = "";

  }

</script>

<html> 
  <body>
    <form runat="server">
        
      <h3>FormViewCommandEventHandler Example</h3>
        
      <!-- Use a PlaceHolder control as the container for the
 -->
      <!-- dynamically generated FormView control.            -->       
      <asp:formview id="EmployeesFormView"
        datasourceid="EmployeeSource"
        allowpaging="True"
        headertext="Employee Name"
        onitemcommand="EmployeesFormView_ItemCommand"
        onpageindexchanged="EmployeesFormView_PageIndexChanged"
        runat="server">
      
        <itemtemplate>
        
          <asp:label id="FirstNameLabel"
            text='<%# Eval("FirstName") %>'
            runat="server"/>
          <br/>
          <asp:label id="LastNameLabel"
            text='<%# Eval("LastName") %>'
            runat="server"/>
          <br/>
          <asp:button
            id="DisplayButton"
            text="Display Employee"
            commandname="Display" 
            runat="server"/>
        
        </itemtemplate>
        
      </asp:formview>
            
      <br/><br/>
      
      <asp:label id="MessageLabel"
        forecolor="Red"
        runat="server"/>
            
      <!-- This example uses Microsoft SQL Server and connects  -->
      <!-- to the Northwind sample database. Use an ASP.NET     -->
      <!-- expression to retrieve the connection string value
   -->
      <!-- from the Web.config file.                            -->
      <asp:sqldatasource id="EmployeeSource"
        selectcommand="Select [EmployeeID], [LastName], [FirstName] From [Employees]"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
 
        runat="server"/>
          
    </form>
  </body>
</html>

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
System.Web.UI.WebControls 名前空間
FormView クラス
FormView.ItemCommand イベント
OnItemCommand
FormViewCommandEventArgs クラス
CommandEventArgs クラス
FormView.ItemDeleted イベント
FormView.ItemDeleting イベント
FormView.ItemInserted イベント
FormView.ItemInserting イベント
FormView.ItemUpdated イベント
FormView.ItemUpdating イベント
FormView.PageIndexChanged イベント
FormView.PageIndexChanging イベント
その他の技術情報
イベントデリゲート


このページでは「.NET Framework クラス ライブラリ リファレンス」からFormViewCommandEventHandler デリゲートを検索した結果を表示しています。
Weblioに収録されているすべての辞書からFormViewCommandEventHandler デリゲートを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からFormViewCommandEventHandler デリゲート を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

FormViewCommandEventHandler デリゲートのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



FormViewCommandEventHandler デリゲートのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS