FormViewCommandEventArgs FormViewCommandEventArgs FormViewCommandEventArgs FormViewCommandEventArgs Class

Определение

Предоставляет данные для события ItemCommand.Provides data for the ItemCommand event.

public ref class FormViewCommandEventArgs : System::Web::UI::WebControls::CommandEventArgs
public class FormViewCommandEventArgs : System.Web.UI.WebControls.CommandEventArgs
type FormViewCommandEventArgs = class
    inherit CommandEventArgs
Public Class FormViewCommandEventArgs
Inherits CommandEventArgs
Наследование
FormViewCommandEventArgsFormViewCommandEventArgsFormViewCommandEventArgsFormViewCommandEventArgs

Примеры

Следующий пример демонстрирует, как использовать FormViewCommandEventArgs объект, передаваемый в метод обработки событий для ItemCommand событие, чтобы определить, какую кнопку в FormView пользователь щелкнул элемент управления.The following example demonstrates how to use the FormViewCommandEventArgs object passed to the event-handling method for the ItemCommand event to determine which button within a FormView control was clicked by the user.

Важно!

В этом примере имеется текстовое поле, принимающее вводимые пользователем данные, что является потенциальной угрозой безопасности.This example has a text box that accepts user input, which is a potential security threat. По умолчанию данные, вводимые пользователем на веб-страницах ASP.NET, проверяются на наличие скриптов и HTML-элементов.By default, ASP.NET Web pages validate that user input does not include script or HTML elements. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев.For more information, see Script Exploits Overview.


<%@ Page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  void ProductFormView_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 == "Add")
    {

      // Add the product to the ListBox control. 
      
      // Use the Row property to retrieve the data row.
      FormViewRow row = ProductFormView.Row;
      
      // Retrieve the ProductNameLabel control from
      // the data row.
      Label productNameLabel = (Label)row.FindControl("ProductNameLabel");

      // Retrieve the QuantityTextBox control from
      // the data row.
      TextBox quantityTextBox = (TextBox)row.FindControl("QuantityTextBox");

      if (productNameLabel != null && quantityTextBox != null)
      {    
        // Get the product name from the ProductNameLabel control.
        string name = productNameLabel.Text;
        
        // Get the quantity from the QuantityTextBox control.
        string quantity = quantityTextBox.Text;

        // Create the text to display in the ListBox control.
        string description = name + " - " + quantity + " Qty";

        // Create a ListItem object using the description and
        // product name.
        ListItem item = new ListItem(description, name);

        // Add the ListItem object to the ListBox.
        ProductListBox.Items.Add(item);

        // Use the CommandSource property to retrieve
        // the Add button. Disable the button after
        // the user adds the currently displayed employee
        // name to the ListBox control.
        Button addButton = (Button)e.CommandSource;
        addButton.Enabled = false;
      }

    }

  }

  void ProductFormView_DataBound(Object sender, EventArgs e)
  {
    
    // To prevent the user from adding duplicate items, 
    // disable the Add button if the item being bound to the 
    // FormView control is already in the ListBox control.
    
    // Use the Row property to retrieve the data row.
    FormViewRow row = ProductFormView.Row;

    // Retrieve the Add button from the data row.
    Button addButton = (Button)row.FindControl("AddButton");

    // Retrieve the ProductNameLabel control from
    // data row.
    Label productNameLabel = (Label)row.FindControl("ProductNameLabel");

    if (addButton != null && productNameLabel != null)
    {
      // Get the product name from the ProductNameLabel 
      // control.
      string name = productNameLabel.Text;

      // Use the FindByValue method to determine whether
      // the ListBox control already contains an entry for
      // the item.
      ListItem item = ProductListBox.Items.FindByValue(name);

      // Disable the Add button if the ListBox control
      // already contains the item.
      if (item != null)
      {
        addButton.Enabled = false;
      }
      else
      {
        addButton.Enabled = true;
      }
    }

  }
    
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>FormViewCommandEventArgs Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>FormViewCommandEventArgs Example</h3>
                       
      <asp:formview id="ProductFormView"
        datasourceid="ProductSource"
        allowpaging="true"
        datakeynames="ProductID"
        onitemcommand="ProductFormView_ItemCommand"
        ondatabound="ProductFormView_DataBound"  
        runat="server">
        
        <itemtemplate>
        
          <table>
            <tr>
              <td style="width:400px">
                <b>Description:</b>
                <asp:label id="ProductNameLabel"
                  text='<%# Eval("ProductName") %>'
                  runat='server'/>
                <br/>      
                <b>Price:</b>
                <asp:label id="PriceLabel"
                  text='<%# Eval("UnitPrice", "{0:c}") %>'
                  runat='server'/>
                <br/>  
                <asp:textbox id="QuantityTextBox"
                  width="50px"
                  maxlength="3" 
                  runat="server"/> Qty                   
              </td>
            </tr>
            <tr>
              <td>
                <asp:requiredfieldvalidator ID="QuantityRequiredValidator"
                  controltovalidate="QuantityTextBox"
                  text="Please enter a quantity."
                  display="Static"
                  runat="server"/>
                <br/>
                <asp:CompareValidator id="QuantityCompareValidator"
                  controltovalidate="QuantityTextBox"
                  text="Please enter an integer value."
                  display="Static"
                  type="Integer"
                  operator="DataTypeCheck"  
                  runat="server"/>    
              </td>
            </tr>
            <tr>
              <td colspan="2">
                <asp:button id="AddButton"
                  text="Add"
                  commandname="Add"
                  runat="server"/>
              </td>
            </tr>
          </table>
        
        </itemtemplate>
                  
      </asp:formview>
      
      <br/><br/><hr/>
      
      Items:<br/>
      <asp:listbox id="ProductListBox"
        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="ProductSource"
        selectcommand="Select [ProductID], [ProductName], [UnitPrice] From [Products]"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" 
        runat="server"/>
            
    </form>
  </body>
</html>


<%@ Page language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  Sub ProductFormView_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 = "Add" Then

      ' Add the product to the ListBox control. 
      
      ' Use the Row property to retrieve the data row.
      Dim row As FormViewRow = ProductFormView.Row
      
      ' Retrieve the ProductNameLabel control from
      ' the data row.
      Dim productNameLabel As Label = CType(row.FindControl("ProductNameLabel"), Label)

      ' Retrieve the QuantityTextBox control from
      ' the data row.
      Dim quantityTextBox As TextBox = CType(row.FindControl("QuantityTextBox"), TextBox)

      If productNameLabel IsNot Nothing And quantityTextBox IsNot Nothing Then
          
        ' Get the product name from the ProductNameLabel control.
        Dim name As String = productNameLabel.Text
        
        ' Get the quantity from the QuantityTextBox control.
        Dim quantity As String = quantityTextBox.Text

        ' Create the text to display in the ListBox control.
        Dim description As String = name & " - " & quantity & " Qty"

        ' Create a ListItem object using the description and
        ' product name.
        Dim item As new ListItem(description, name)

        ' Add the ListItem object to the ListBox.
        ProductListBox.Items.Add(item)

        ' Use the CommandSource property to retrieve
        ' the Add button. Disable the button after
        ' the user adds the currently displayed employee
        ' name to the ListBox control.
        Dim addButton As Button = CType(e.CommandSource, Button)
        addButton.Enabled = False
        
      End If

    End If

  End Sub

  Sub ProductFormView_DataBound(ByVal sender As Object, ByVal e As EventArgs)
    
    ' To prevent the user from adding duplicate items, 
    ' disable the Add button if the item being bound to the 
    ' FormView control is already in the ListBox control.
    
    ' Use the Row property to retrieve the data row.
    Dim row As FormViewRow = ProductFormView.Row

    ' Retrieve the Add button from the data row.
    Dim addButton As Button = CType(row.FindControl("AddButton"), Button)

    ' Retrieve the ProductNameLabel control from
    ' data row.
    Dim productNameLabel As Label = CType(row.FindControl("ProductNameLabel"), Label)

    If addButton IsNot Nothing And productNameLabel IsNot Nothing Then
    
      ' Get the product name from the ProductNameLabel 
      ' control.
      Dim name As String = productNameLabel.Text

      ' Use the FindByValue method to determine whether
      ' the ListBox control already contains an entry for
      ' the item.
      Dim item As ListItem = ProductListBox.Items.FindByValue(name)

      ' Disable the Add button if the ListBox control
      ' already contains the item.
      If item IsNot Nothing Then
      
        addButton.Enabled = False
      
      Else
      
        addButton.Enabled = True
        
      End If
      
    End If

  End Sub
    
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>FormViewCommandEventArgs Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>FormViewCommandEventArgs Example</h3>
                       
      <asp:formview id="ProductFormView"
        datasourceid="ProductSource"
        allowpaging="true"
        datakeynames="ProductID"
        onitemcommand="ProductFormView_ItemCommand"
        ondatabound="ProductFormView_DataBound"  
        runat="server">
        
        <itemtemplate>
        
          <table>
            <tr>
              <td style="width:400px">
                <b>Description:</b>
                <asp:label id="ProductNameLabel"
                  text='<%# Eval("ProductName") %>'
                  runat='server'/>
                <br/>      
                <b>Price:</b>
                <asp:label id="PriceLabel"
                  text='<%# Eval("UnitPrice", "{0:c}") %>'
                  runat='server'/>
                <br/>  
                <asp:textbox id="QuantityTextBox"
                  width="50px"
                  maxlength="3" 
                  runat="server"/> Qty                   
              </td>
            </tr>
            <tr>
              <td>
                <asp:requiredfieldvalidator ID="QuantityRequiredValidator"
                  controltovalidate="QuantityTextBox"
                  text="Please enter a quantity."
                  display="Static"
                  runat="server"/>
                <br/>
                <asp:CompareValidator id="QuantityCompareValidator"
                  controltovalidate="QuantityTextBox"
                  text="Please enter an integer value."
                  display="Static"
                  type="Integer"
                  operator="DataTypeCheck"  
                  runat="server"/>    
              </td>
            </tr>
            <tr>
              <td colspan="2">
                <asp:button id="AddButton"
                  text="Add"
                  commandname="Add"
                  runat="server"/>
              </td>
            </tr>
          </table>
        
        </itemtemplate>
                  
      </asp:formview>
      
      <br/><br/><hr/>
      
      Items:<br/>
      <asp:listbox id="ProductListBox"
        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="ProductSource"
        selectcommand="Select [ProductID], [ProductName], [UnitPrice] From [Products]"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" 
        runat="server"/>
            
    </form>
  </body>
</html>

Комментарии

ItemCommand Событие возникает, когда кнопки в FormView нажатии элемента управления.The ItemCommand event is raised when a button within the FormView control is clicked. Это позволяет создать метод обработки событий, выполняющий пользовательские действия при появлении этого события.This allows you to provide an event-handling method that performs a custom routine whenever this event occurs.

Кнопки в FormView управления также может вызвать некоторые встроенные функциональные возможности элемента управления.Buttons within a FormView control can also invoke some of the built-in functionality of the control. Чтобы выполнить одну из этих операций, задайте CommandName свойства кнопки одно из значений в следующей таблице.To perform one of these operations, set the CommandName property of a button to one of the values in the following table.

Значение CommandNameCommandName value Описание:Description
«Отмена»"Cancel" Отменяет операцию редактирования или вставки и возвращает FormView управления режимом, указанным DefaultMode свойство.Cancels an edit or insert operation and returns the FormView control to the mode specified by the DefaultMode property. Вызывает ModeChanged и ModeChanging события.Raises the ModeChanged and ModeChanging events.
"Удалить""Delete" Удаляет текущую запись.Deletes the current record. Вызывает ItemDeleted и ItemDeleting события.Raises the ItemDeleted and ItemDeleting events.
«Edit»"Edit" Помещает FormView управления в режиме редактирования.Puts the FormView control in edit mode. Вызывает ModeChanged и ModeChanging события.Raises the ModeChanged and ModeChanging events.
«Вставить»"Insert" Вставляет текущую запись в источник данных.Inserts the current record in the data source. Вызывает ItemInserted и ItemInserting события.Raises the ItemInserted and ItemInserting events.
«New»"New" Помещает FormView элемента управления в режиме вставки.Puts the FormView control in insert mode. Вызывает ModeChanged и ModeChanging события.Raises the ModeChanged and ModeChanging events.
«Страница»"Page" Выполняет операцию разбиения на страницы.Performs a paging operation. Задайте CommandArgument свойство кнопку, чтобы «Первый», «Last», «Далее», «Назад», или номер страницы для указания типа операции разбиения по страницам для выполнения.Set the CommandArgument property of the button to "First", "Last", "Next", "Prev", or a page number to specify the type of paging operation to perform. Вызывает PageIndexChanged и PageIndexChanging события.Raises the PageIndexChanged and PageIndexChanging events.
«Обновление»"Update" Обновляет текущую запись в источнике данных.Updates the current record in the data source. Вызывает ItemUpdated и ItemUpdating события.Raises the ItemUpdated and ItemUpdating events.

Несмотря на то что ItemCommand событие возникает при нажатии кнопки, перечисленные в предыдущей таблице, рекомендуется использовать события, перечисленные в таблице для операции.Although the ItemCommand event is raised when a button listed in the previous table is clicked, it is recommended that you use the events listed in the table for the operation.

Объект FormViewCommandEventArgs объект передается в метод обработки событий, который позволяет определить имя команды и аргумент команды нажатой кнопки.A FormViewCommandEventArgs object is passed to the event-handling method, which allows you to determine the command name and command argument of the button clicked. Чтобы определить имя команды и аргумент команды, используйте CommandName и CommandArgument свойства, соответственно.To determine the command name and command argument, use the CommandName and CommandArgument properties, respectively. Также можно использовать элемент управления button, который вызвал событие с помощью CommandSource свойство.You can also access the button control that raised the event by using the CommandSource property.

Дополнительные сведения об обработке событий см. в разделе обработка и вызов событий.For more information about how to handle events, see Handling and Raising Events.

Список начальных значений свойств для экземпляра класса FormViewCommandEventArgs см. в описании конструктора FormViewCommandEventArgs.For a list of initial property values for an instance of the FormViewCommandEventArgs class, see the FormViewCommandEventArgs constructor.

Конструкторы

FormViewCommandEventArgs(Object, CommandEventArgs) FormViewCommandEventArgs(Object, CommandEventArgs) FormViewCommandEventArgs(Object, CommandEventArgs) FormViewCommandEventArgs(Object, CommandEventArgs)

Инициализирует новый экземпляр класса FormViewCommandEventArgs.Initializes a new instance of the FormViewCommandEventArgs class.

Свойства

CommandArgument CommandArgument CommandArgument CommandArgument

Получает аргумент для команды.Gets the argument for the command.

(Inherited from CommandEventArgs)
CommandName CommandName CommandName CommandName

Получает имя команды.Gets the name of the command.

(Inherited from CommandEventArgs)
CommandSource CommandSource CommandSource CommandSource

Возвращает элемент управления, вызывающий событие.Gets the control that raised the event.

Handled Handled Handled Handled

Получает или задает значение, указывающее, обработал ли элемент управления событие.Gets or sets a value that indicates whether the control has handled the event.

Методы

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

Применяется к

Дополнительно