GridViewCancelEditEventHandler 委托

定义

表示处理 RowCancelingEdit 控件的 GridView 事件的方法。

public delegate void GridViewCancelEditEventHandler(System::Object ^ sender, GridViewCancelEditEventArgs ^ e);
public delegate void GridViewCancelEditEventHandler(object sender, GridViewCancelEditEventArgs e);
type GridViewCancelEditEventHandler = delegate of obj * GridViewCancelEditEventArgs -> unit
Public Delegate Sub GridViewCancelEditEventHandler(sender As Object, e As GridViewCancelEditEventArgs)

参数

sender
Object

事件源。

e
GridViewCancelEditEventArgs

包含事件数据的 GridViewCancelEditEventArgs 对象。

示例

下面的示例演示如何以编程方式向 控件的 GridView 事件添加GridViewCancelEditEventHandler委托RowCancelingEdit


<%@ 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 Page_Load(Object sender, EventArgs e)
  {
        
    // Create a new GridView object.
    GridView customerGridView = new GridView();
         
    // Set the GridView object's properties.
    customerGridView.ID = "CustomersGridView";
    customerGridView.DataSourceID = "CustomersSqlDataSource";
    customerGridView.AutoGenerateColumns = true;
    customerGridView.AutoGenerateEditButton = true;
    customerGridView.DataKeyNames = new String[] { "CustomerID" };
        
    // Programmatically register the event-handling methods.
    customerGridView.RowCancelingEdit += new GridViewCancelEditEventHandler(this.CustomersGridView_RowCancelingEdit);
    customerGridView.RowUpdated += new GridViewUpdatedEventHandler(this.CustomersGridView_RowUpdated);
        
    // Add the GridView object to the Controls collection
    // of the PlaceHolder control.
    GridViewPlaceHolder.Controls.Add(customerGridView);
        
  }

  void CustomersGridView_RowCancelingEdit(Object sender, GridViewCancelEditEventArgs e)
  {
    
    // Display a message indicating that the update operation was canceled.
    Message.Text = "Update for row " + e.RowIndex.ToString() + " canceled."; 
    
  }

  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>GridViewCancelEditEventHandler Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>GridViewCancelEditEventHandler Example</h3>
            
      <asp:label id="Message"
        forecolor="Red"
        runat="server"/>
                
      <br/>
            
      <asp:placeholder id="GridViewPlaceHolder"
        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="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>

<%@ 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 Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        
    ' Create a new GridView object.
    Dim customerGridView As New GridView()
         
    ' Set the GridView object's properties.
    customerGridView.ID = "CustomersGridView"
    customerGridView.DataSourceID = "CustomersSqlDataSource"
    customerGridView.AutoGenerateColumns = True
    customerGridView.AutoGenerateEditButton = True
    customerGridView.DataKeyNames = New [String]() {"CustomerID"}
        
    ' Programmatically register the event-handling methods.
    AddHandler customerGridView.RowCancelingEdit, AddressOf CustomersGridView_RowCancelingEdit
    AddHandler customerGridView.RowUpdated, AddressOf CustomersGridView_RowUpdated
        
    ' Add the GridView object to the Controls collection
    ' of the PlaceHolder control.
    GridViewPlaceHolder.Controls.Add(customerGridView)
        
  End Sub
    
  Sub CustomersGridView_RowCancelingEdit(ByVal sender As Object, ByVal e As GridViewCancelEditEventArgs)
    
    ' Display a message indicating that the update operation was canceled.
    Message.Text = "Update for row " + e.RowIndex.ToString() + " canceled."
    
  End Sub
    
  Sub CustomersGridView_RowUpdated(ByVal sender As Object, ByVal e As GridViewUpdatedEventArgs)

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

  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>GridViewCancelEditEventHandler Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>GridViewCancelEditEventHandler Example</h3>
            
      <asp:label id="Message"
        forecolor="Red"
        runat="server"/>
                
      <br/>
            
      <asp:placeholder id="GridViewPlaceHolder"
        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="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>

以下示例演示如何以声明方式向 控件的 GridView 事件添加GridViewCancelEditEventHandler委托RowCancelingEdit


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

<%@ 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 CustomersGridView_RowCancelingEdit(ByVal sender As Object, ByVal e As GridViewCancelEditEventArgs)
    
    ' Retrieve the row that raised the event from the Rows
    ' collection of the GridView control.
    Dim row As GridViewRow = 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."
    
  End Sub

  Sub CustomersGridView_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs)

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

  End Sub
  
  Sub CustomersGridView_RowUpdated(ByVal sender As Object, ByVal e As GridViewUpdatedEventArgs)
    
    ' The update operation was successful. Clear the message label.
    Message.Text = ""

  End Sub
    
</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>

注解

RowCancelingEdit 单击编辑模式下某行的“取消”按钮时,但在该行退出编辑模式之前,将引发 该事件。 这允许你提供一个执行自定义例程的事件处理方法,例如,每当发生此事件时,如果它会使行处于不需要的状态,则停止取消操作。

创建 GridViewCancelEditEventHandler 委托时,需要标识将处理该事件的方法。 若要将事件与事件处理程序关联,请将该委托的一个实例添加到事件中。 除非移除了该委托,否则每当发生该事件时就会调用事件处理程序。 有关事件处理程序委托的详细信息,请参阅 处理和引发事件

扩展方法

GetMethodInfo(Delegate)

获取指示指定委托表示的方法的对象。

适用于

另请参阅