RowCancelingEdit, événement

GridView.RowCancelingEdit, événement

Mise à jour : novembre 2007

Se produit lorsqu'un clic est effectué sur le bouton Annuler d'une ligne en mode édition, mais avant que la ligne ne quitte le mode édition.

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

public event GridViewCancelEditEventHandler RowCancelingEdit
/** @event */
public void add_RowCancelingEdit (GridViewCancelEditEventHandler value)
/** @event */
public void remove_RowCancelingEdit (GridViewCancelEditEventHandler value)

JScript ne prend pas en charge les événements.
<asp:GridView OnRowCancelingEdit="GridViewCancelEditEventHandler" />

L'événement RowCancelingEdit est déclenché en cas de clic sur le bouton Annuler d'une ligne en mode édition, mais avant que la ligne ne quitte le mode édition. Cela vous permet de fournir une méthode de gestion d'événements qui exécute une routine personnalisée, par exemple l'arrêt de l'opération d'annulation si elle risque de placer la ligne dans un état indésirable, chaque fois que cet événement se produit.

Un objet GridViewCancelEditEventArgs est passé à la méthode de gestion d'événements, ce qui vous permet de déterminer l'index de la ligne en cours et d'indiquer que l'opération d'annulation doit être arrêtée. Pour arrêter l'opération d'annulation, affectez la valeur true à la propriété Cancel de l'objet GridViewCancelEditEventArgs.

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

L'exemple suivant montre comment utiliser l'événement RowCancelingEdit pour afficher un message d'annulation lorsque l'utilisateur annule l'opération de mise à jour d'un contrôle GridView.


<%@ 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 CustomersGridView_RowCancelingEdit(Object sender, GridViewCancelEditEventArgs e)
  {

    // Retrieve the row that raised the event from the Rows
    // collection of the GridView control.
    GridViewRow row = CustomersGridView.Rows[e.RowIndex];

    // The update operation was canceled. Display the 
    // primary key of the row. In this example, the primary
    // key is displayed in the second column of the GridView
    // control. To access the text of the column, use the Cells
    // collection of the row.
    Message.Text = "Update for item " + row.Cells[1].Text + " Canceled."; 

  }

  void CustomersGridView_RowEditing(Object sender, GridViewEditEventArgs e)
  {

    // The GridView control is entering edit mode. Clear the message label.
    Message.Text = "";

  }

  void CustomersGridView_RowUpdated(Object sender, GridViewUpdatedEventArgs e)
  {

    // The update operation was successful. Clear the message label.
    Message.Text = "";

  }

</script>

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

      <h3>GridView RowCancelingEdit Example</h3>

      <asp:label id="Message"
        forecolor="Red"
        runat="server"/>

      <br/>

      <!-- The GridView control automatically sets the columns     -->
      <!-- specified in the datakeynames attribute as read-only.   -->
      <!-- No input controls are rendered for these columns in     -->
      <!-- edit mode.                                              -->
      <asp:gridview id="CustomersGridView" 
        datasourceid="CustomersSqlDataSource" 
        autogeneratecolumns="true"
        autogenerateeditbutton="true"
        allowpaging="true" 
        datakeynames="CustomerID"
        onrowcancelingedit="CustomersGridView_RowCancelingEdit"
        onrowediting="CustomersGridView_RowEditing" 
        onrowupdated="CustomersGridView_RowUpdated"    
        runat="server">
      </asp:gridview>

      <!-- 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="CustomersSqlDataSource"  
        selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
        updatecommand="Update Customers SET CompanyName=@CompanyName, Address=@Address, City=@City, PostalCode=@PostalCode, Country=@Country WHERE (CustomerID = @CustomerID)"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
        runat="server">
      </asp:sqldatasource>

    </form>
  </body>
</html>



L'exemple suivant montre comment utiliser l'événement RowCancelingEdit pour annuler l'opération de mise à jour lorsque la source de données est définie par programme.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>

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

<script runat="server">

  protected void Page_Load(object sender, EventArgs e)
  {

    if (!Page.IsPostBack)
    {
      // Create a new table.
      DataTable taskTable = new DataTable("TaskList");

      // Create the columns.
      taskTable.Columns.Add("Id", typeof(int));
      taskTable.Columns.Add("Description", typeof(string));
      taskTable.Columns.Add("IsComplete", typeof(bool) );

      //Add data to the new table.
      for (int i = 0; i < 10; i++)
      {
        DataRow tableRow = taskTable.NewRow();
        tableRow["Id"] = i;
        tableRow["Description"] = "Task " + i.ToString();
        tableRow["IsComplete"] = false;            
        taskTable.Rows.Add(tableRow);
      }

      //Persist the table in the Session object.
      Session["TaskTable"] = taskTable;

      //Bind data to the GridView control.
      BindData();
    }

  }

  protected void TaskGridView_RowEditing(object sender, GridViewEditEventArgs e)
  {
    //Set the edit index.
    TaskGridView.EditIndex = e.NewEditIndex;
    //Bind data to the GridView control.
    BindData();
  }

  protected void TaskGridView_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
  {
    //Reset the edit index.
    TaskGridView.EditIndex = -1;
    //Bind data to the GridView control.
    BindData();
  }

  protected void TaskGridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
  {
    //Retrieve the table from the session object.
    DataTable dt = (DataTable)Session["TaskTable"];

    //Update the values.
    GridViewRow row = TaskGridView.Rows[e.RowIndex];
    dt.Rows[TaskGridView.EditIndex]["Id"] = ((TextBox)(row.Cells[1].Controls[0])).Text;
    dt.Rows[TaskGridView.EditIndex]["Description"] = ((TextBox)(row.Cells[2].Controls[0])).Text;
    dt.Rows[TaskGridView.EditIndex]["IsComplete"] = ((CheckBox)(row.Cells[3].Controls[0])).Checked;

    //Reset the edit index.
    TaskGridView.EditIndex = -1;

    //Bind data to the GridView control.
    BindData();
  }

  private void BindData()
  {
    TaskGridView.DataSource = Session["TaskTable"];
    TaskGridView.DataBind();
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>GridView example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

      <asp:GridView ID="TaskGridView" runat="server" 
        AutoGenerateEditButton="True" 
        OnRowEditing="TaskGridView_RowEditing"         
        OnRowCancelingEdit="TaskGridView_RowCancelingEdit" 
        OnRowUpdating="TaskGridView_RowUpdating">
      </asp:GridView>

    </div>
    </form>
</body>
</html>


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

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2016 Microsoft