Экспорт (0) Печать
Развернуть все
0 из 1 оценили этот материал как полезный - Оценить эту тему

FormView.ItemCommand - событие

Обновлен: Ноябрь 2007

Происходит при нажатии кнопки в элементе управления FormView.

Пространство имен:  System.Web.UI.WebControls
Сборка:  System.Web (в System.Web.dll)
public event FormViewCommandEventHandler ItemCommand
/** @event */
public void add_ItemCommand (FormViewCommandEventHandler value)
/** @event */
public void remove_ItemCommand (FormViewCommandEventHandler value)

JScript не поддерживает события.
<asp:FormView OnItemCommand="FormViewCommandEventHandler" />

Событие ItemCommand возникает при нажатии кнопки в элементе управления FormView. Это позволяет создать метод обработки событий, выполняющий пользовательскую процедуру каждый раз, когда происходит данное событие.

Кнопки в элементе управления FormView могут также вызывать определенные функции, встроенные в этот элемент управления. Для выполнения одной из таких операций нужно присвоить свойству CommandName кнопки одно из значений, указанных в приведенной ниже таблице.

Значение CommandName

Описание

"Cancel"

Отменяет операцию редактирования или вставки и возвращает элемент управления FormView в режим, заданный свойством DefaultMode. Генерирует события ModeChanged и ModeChanging.

"Delete"

Удаляет текущую запись. Генерирует события ItemDeleted и ItemDeleting.

"Edit"

Переводит элемент управления FormView в режим редактирования. Генерирует события ModeChanged и ModeChanging.

"Insert"

Вставляет текущую запись в источник данных. Генерирует события ItemInserted и ItemInserting.

"New"

Переводит элемент управления FormView в режим вставки. Генерирует события ModeChanged и ModeChanging.

"Page"

Выполняет операцию разбиения по страницам. Чтобы задать тип выполняемой операции разбиения по страницам, нужно присвоить свойству CommandArgument кнопки значение "First", "Last", "Next", "Prev" или номер страницы. Генерирует события PageIndexChanged и PageIndexChanging.

"Update"

Обновляет текущую запись в источнике данных. Генерирует события ItemUpdated и ItemUpdating.

Хотя при нажатии перечисленных в предыдущей таблице кнопок происходит событие ItemCommand для данной операции рекомендуется использовать события, указанные в этой таблице.

Объект FormViewCommandEventArgs передается обрабатывающему событие методу, который позволяет определить имя и аргумент команды нажатой кнопки. Для определения имени и аргумента команды используются, соответственно, свойства CommandName CommandArgument. Доступ к элементу управления, вызвавшему событие, можно также получить с помощью свойства CommandSource.

Дополнительные сведения об обработке событий см. в разделе Прием событий.

В следующем примере кода демонстрируется использование события ItemCommand для обработки нажатия кнопки в элементе управления FormView. При нажатии пользователем кнопки "Добавить" текущий отображаемый элемент добавляется в элемент управления ListBox.


<%@ 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>



Windows Vista, Windows XP с пакетом обновления 2 (SP2), Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 с пакетом обновления 4 (SP4), Windows Millennium Edition, Windows 98

Среды .NET Framework и .NET Compact Framework поддерживают не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.

.NET Framework

Поддерживается в версиях: 3.5, 3.0, 2.0
Была ли вам полезна эта информация?
(1500 символов осталось)
Спасибо за ваш отзыв

Добавления сообщества

ДОБАВИТЬ
Показ:
© 2014 Microsoft. Все права защищены.