ButtonField.CommandName Property


Gets or sets a string that represents the action to perform when a button in a ButtonField object is clicked.

Namespace:   System.Web.UI.WebControls
Assembly:  System.Web (in System.Web.dll)

public virtual string CommandName { get; set; }

Property Value

Type: System.String

The name of the action to perform when a button in the ButtonField is clicked.

Use the CommandName property to associate a command name, such as "Add" or "Remove", with the buttons in the ButtonField object. You can set the CommandName property to any string that identifies the action to perform when the command button is clicked. You can then programmatically determine the command name in an event handler and perform the appropriate actions.


All buttons in a ButtonField object share the same command name.

Data-bound controls recognize certain command names and automatically raise and handle the appropriate events for the control. The following command names are recognized:

  • "Cancel"

  • "Delete"

  • "Edit"

  • "Insert"

  • "New"

  • "Page"

  • "Select"

  • "Sort"

  • "Update"

To invoke paging, set the CommandName to "Page" and the CommandArgument of the contained Button control to "First", "Last", "Prev", "Next", or a page number. However, since the CommandArgument for a ButtonField control is always the integer row index, a ButtonField control is not suitable for invoking paging. Similarly, while you can invoke sorting by setting the CommandName to "Sort", the CommandArgument property for a ButtonField control is always the integer row index. For this reason, a ButtonField control is not suitable for invoking sorting. For custom command names, such as "Add" and "Remove", you need to write the event code to check the command name and perform some custom action. For more information, see DataControlCommands.


Not all command names are recognized by every data-bound controls. For example, "New" is not recognized by the GridView control and "Select" is not recognized by the DetailsView control.

The value of this property is stored in view state.

The following code example demonstrates how to use the CommandName property to specify a command name for the buttons in a ButtonField object of a GridView control.

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
<script runat="server">

  void CustomersGridView_RowCommand(Object sender, GridViewCommandEventArgs e)

    // If multiple ButtonField column fields are used, use the
    // CommandName property to determine which button was clicked.

      // Convert the row index stored in the CommandArgument
      // property to an Integer.
      int index = Convert.ToInt32(e.CommandArgument);    

      // Get the last name of the selected author from the appropriate
      // cell in the GridView control.
      GridViewRow selectedRow = CustomersGridView.Rows[index];
      TableCell contactName = selectedRow.Cells[1];
      string contact = contactName.Text;  

      // Display the selected author.
      Message.Text = "You selected " + contact + ".";




<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ButtonField Example</title>
    <form id="form1" runat="server">

      <h3>ButtonField Example</h3>

      <asp:label id="Message"

      <!-- Populate the Columns collection declaratively. -->
      <asp:gridview id="CustomersGridView" 


          <asp:buttonfield buttontype="Button" 
            headertext="Select Customer" 
          <asp:boundfield datafield="CompanyName" 
            headertext="Company Name"/>
          <asp:boundfield datafield="ContactName" 
            headertext="Contact Name"/>



        <!-- This example uses Microsoft SQL Server and connects -->
        <!-- to the Northwind sample database.                   -->
        <asp:sqldatasource id="CustomersSqlDataSource"  
          selectcommand="Select [CustomerID], [CompanyName], [ContactName], [ContactTitle] From [Customers]"
          connectionstring="<%$ ConnectionStrings:NorthWindConnection%>"


.NET Framework
Available since 2.0
Return to top