Cette documentation est archivée et n’est pas conservée.

GridView.RowCommand, événement

Remarque : cet événement est nouveau dans le .NET Framework version 2.0.

Se produit lorsqu'un clic est effectué sur un bouton dans un contrôle GridView.

Espace de noms : System.Web.UI.WebControls
Assembly : System.Web (dans system.web.dll)

public event GridViewCommandEventHandler RowCommand
/** @event */
public void add_RowCommand (GridViewCommandEventHandler value)

/** @event */
public void remove_RowCommand (GridViewCommandEventHandler value)

JScript prend en charge l'utilisation d'événements mais pas la déclaration de nouveaux événements.

L'événement RowCommand est déclenché lorsqu'un clic a été effectué sur un bouton figurant dans le contrôle GridView. Cela vous permet de fournir une méthode de gestion d'événements qui exécute une routine personnalisée lorsque cet événement se produit.

Les boutons d'un contrôle GridView peuvent aussi appeler quelques-unes des fonctionnalités intégrées du contrôle. Pour exécuter l'une de ces opérations, définissez la propriété CommandName d'un bouton avec l'une des valeurs du tableau suivant.

Valeur de CommandName

Description

"Cancel"

Annule une opération d'édition et retourne le contrôle GridView en mode lecture seule. Déclenche l'événement RowCancelingEdit.

"Delete"

Supprime l'enregistrement actif. Déclenche les événements RowDeleting et RowDeleted.

"Edit"

Met l'enregistrement actif en mode édition. Déclenche l'événement RowEditing.

"Page"

Exécute une opération de pagination. Affecte à la propriété CommandArgument du bouton la valeur "First", "Last", "Next", "Prev", ou un numéro de page, pour spécifier le type d'opération de pagination à effectuer. Déclenche les événements PageIndexChanging et PageIndexChanged.

"Select"

Sélectionne l'enregistrement actif. Déclenche les événements SelectedIndexChanging et SelectedIndexChanged.

"Sort"

Trie le contrôle GridView. Déclenche les événements Sorting et Sorted.

"Update"

Met à jour l'enregistrement en cours dans la source de données. Déclenche les événements RowUpdating et RowUpdated.

Bien que l'événement RowCommand soit déclenché en cas de clic sur un bouton répertorié dans le tableau précédent, il est recommandé d'utiliser les événements répertoriés dans le tableau pour l'opération.

Un objet GridViewCommandEventArgs est passé à la méthode de gestion d'événements qui vous permet de déterminer le nom de commande et l'argument de commande associés au bouton sur lequel vous cliquez.

RemarqueRemarque

La classe GridViewCommandEventArgs ne contient pas de propriété indiquant sur le bouton de quelle ligne vous avez cliqué. Si vous devez savoir quelle ligne a déclenché l'événement, passez l'index de la ligne à la méthode de gestion d'événements à l'aide de la propriété CommandArgument.

Pour plus d'informations sur la gestion des événements, consultez Consommation d'événements.

L'exemple de code suivant montre comment utiliser l'événement RowCommand pour ajouter le nom d'un client d'un contrôle GridView à un contrôle ListBox lorsque vous avez cliqué sur le bouton Ajouter d'une ligne.


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

<script runat="server">

  void CustomersGridView_RowCommand(Object sender, GridViewCommandEventArgs e)
  {
    // If multiple buttons are used in a GridView control, use the
    // CommandName property to determine which button was clicked.
    if(e.CommandName=="Add")
    {
      // Convert the row index stored in the CommandArgument
      // property to an Integer.
      int index = Convert.ToInt32(e.CommandArgument);
            
      // Retrieve the row that contains the button clicked 
      // by the user from the Rows collection.
      GridViewRow row = CustomersGridView.Rows[index];
            
      // Create a new ListItem object for the customer in the row.     
      ListItem item = new ListItem();
      item.Text = Server.HtmlDecode(row.Cells[2].Text);
            
      // If the customer is not already in the ListBox, add the ListItem 
      // object to the Items collection of the ListBox control. 
      if (!CustomersListBox.Items.Contains(item))
      {
        CustomersListBox.Items.Add(item);
      }           
    }
  }

  void CustomersGridView_RowCreated(Object sender, GridViewRowEventArgs e)
  {
    
    // The GridViewCommandEventArgs class does not contain a 
    // property that indicates which row's command button was
    // clicked. To identify which row's button was clicked, use 
    // the button's CommandArgument property by setting it to the 
    // row's index.
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
      // Retrieve the LinkButton control from the first column.
      LinkButton addButton = (LinkButton)e.Row.Cells[0].Controls[0];
          
      // Set the LinkButton's CommandArgument property with the
      // row's index.
      addButton.CommandArgument = e.Row.RowIndex.ToString();
    }

  }
    
</script>

<html>
  <body>
    <form runat="server">
        
      <h3>GridView RowCommand Example</h3>
            
      <table width="100%">         
        <tr>                
          <td width="50%">
                    
            <asp:gridview id="CustomersGridView" 
              datasourceid="CustomersSource"
              allowpaging="true" 
              autogeneratecolumns="false"
              onrowcommand="CustomersGridView_RowCommand"
              onrowcreated="CustomersGridView_RowCreated"  
              runat="server">
                
              <columns>
                <asp:buttonfield buttontype="Link" 
                  commandname="Add" 
                  text="Add"/>
                <asp:boundfield datafield="CustomerID" 
                  headertext="Customer ID"/>
                <asp:boundfield datafield="CompanyName" 
                  headertext="Company Name"/> 
                <asp:boundfield datafield="City" 
                  headertext="City"/>         
              </columns>
                
            </asp:gridview>
                    
          </td>
                    
          <td valign="top" width="50%">
                    
            Customers: <br/>
            <asp:listbox id="CustomersListBox"
              runat="server"/> 
                    
          </td>  
        </tr>      
      </table>
            
      <!-- 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="CustomersSource"
        selectcommand="Select [CustomerID], [CompanyName], [City] From [Customers]"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" 
        runat="server"/>
            
    </form>
  </body>
</html>


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0
Afficher: