Provides data for the ItemCommand event.
System.EventArgs
System.Web.UI.WebControls.CommandEventArgs
System.Web.UI.WebControls.FormViewCommandEventArgs
Namespace: System.Web.UI.WebControls
Assembly: System.Web (in System.Web.dll)
Public Class FormViewCommandEventArgs _ Inherits CommandEventArgs
public class FormViewCommandEventArgs : CommandEventArgs
public ref class FormViewCommandEventArgs : public CommandEventArgs
type FormViewCommandEventArgs = class inherit CommandEventArgs end
The FormViewCommandEventArgs type exposes the following members.
| Name | Description | |
|---|---|---|
|
FormViewCommandEventArgs | Initializes a new instance of the FormViewCommandEventArgs class. |
| Name | Description | |
|---|---|---|
|
CommandArgument | Gets the argument for the command. (Inherited from CommandEventArgs.) |
|
CommandName | Gets the name of the command. (Inherited from CommandEventArgs.) |
|
CommandSource | Gets the control that raised the event. |
| Name | Description | |
|---|---|---|
|
Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
|
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
|
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
|
GetType | Gets the Type of the current instance. (Inherited from Object.) |
|
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
|
ToString | Returns a string that represents the current object. (Inherited from Object.) |
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.
Buttons within a FormView control can also invoke some of the built-in functionality of the control. To perform one of these operations, set the CommandName property of a button to one of the values in the following table.
|
CommandName value |
Description |
|---|---|
|
"Cancel" |
Cancels an edit or insert operation and returns the FormView control to the mode specified by the DefaultMode property. Raises the ModeChanged and ModeChanging events. |
|
"Delete" |
Deletes the current record. Raises the ItemDeleted and ItemDeleting events. |
|
"Edit" |
Puts the FormView control in edit mode. Raises the ModeChanged and ModeChanging events. |
|
"Insert" |
Inserts the current record in the data source. Raises the ItemInserted and ItemInserting events. |
|
"New" |
Puts the FormView control in insert mode. Raises the ModeChanged and ModeChanging events. |
|
"Page" |
Performs a paging operation. 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. Raises the PageIndexChanged and PageIndexChanging events. |
|
"Update" |
Updates the current record in the data source. Raises the ItemUpdated and ItemUpdating events. |
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.
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. To determine the command name and command argument, use the CommandName and CommandArgument properties, respectively. You can also access the button control that raised the event by using the CommandSource property.
For more information about handling events, see Consuming Events.
For a list of initial property values for an instance of the FormViewCommandEventArgs class, see the FormViewCommandEventArgs constructor.
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.
Security Note
|
|---|
|
This example has a text box that accepts user input, which is a potential security threat. 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="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>
<%@ 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>
.NET Framework
Supported in: 4, 3.5, 3.0, 2.0Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Security Note