DetailsView.ItemDeleting 事件

定义

在单击 DetailsView 控件中的“删除”按钮时,但在删除操作之前发生。Occurs when a Delete button within a DetailsView control is clicked, but before the delete operation.

public:
 event System::Web::UI::WebControls::DetailsViewDeleteEventHandler ^ ItemDeleting;
public event System.Web.UI.WebControls.DetailsViewDeleteEventHandler ItemDeleting;
member this.ItemDeleting : System.Web.UI.WebControls.DetailsViewDeleteEventHandler 
Public Custom Event ItemDeleting As DetailsViewDeleteEventHandler 

示例

下面的代码示例演示了当用户尝试ItemDeleting DetailsView从控件中删除最后一项时, 如何使用事件取消删除操作。The following code example demonstrates how to use the ItemDeleting event to cancel the delete operation if the user attempts to delete the last item from the DetailsView control.


<%@ 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 CustomerDetailView_ItemDeleting(Object sender, DetailsViewDeleteEventArgs e)
  {
    // Cancel the delete operation if the user attempts to delete the last
    // record from the data source.
      if (CustomerDetailView.DataItemCount <= 1)
    {
      e.Cancel = true;
      MessageLabel.Text = "You must keep at least one store.";
    }
    else
    {
      MessageLabel.Text = "";
    }
  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>DetailsView ItemDeleting Example</title>
</head>
<body>
    <form id="Form1" runat="server">
        
      <h3>DetailsView ItemDeleting Example</h3>
                
        <asp:detailsview id="CustomerDetailView"
          datasourceid="DetailsViewSource"
          datakeynames="CustomerID"
          autogeneratedeletebutton="true"  
          autogeneraterows="true"
          allowpaging="true"
          onitemdeleting="CustomerDetailView_ItemDeleting" 
          runat="server">
               
          <fieldheaderstyle backcolor="Navy"
            forecolor="White"/>
                    
        </asp:detailsview>
        
        <asp:Label id="MessageLabel"
          forecolor="Red"
          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="DetailsViewSource" runat="server" 
          ConnectionString=
            "<%$ ConnectionStrings:NorthWindConnectionString%>"
            InsertCommand="INSERT INTO [Customers]([CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country]) VALUES (@CustomerID, @CompanyName, @Address, @City, @PostalCode, @Country)"
            SelectCommand="Select [CustomerID], [CompanyName], 
              [Address], [City], [PostalCode], [Country] 
              From [Customers]"
            DeleteCommand="DELETE FROM [Customers] WHERE [CustomerID] = @CustomerID" >
        </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 CustomerDetailView_ItemDeleting(ByVal sender As Object, ByVal e As DetailsViewDeleteEventArgs)
        ' Cancel the delete operation if the user attempts to delete the last
        ' record from the data source.
        If (CustomerDetailView.DataItemCount <= 1) Then
            e.Cancel = True
            MessageLabel.Text = "You must keep at least one store."
        Else
            MessageLabel.Text = ""
        End If
    End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>DetailsView ItemDeleting Example</title>
</head>
<body>
    <form id="Form1" runat="server">
        
      <h3>DetailsView ItemDeleting Example</h3>
                
        <asp:detailsview id="CustomerDetailView"
          datasourceid="DetailsViewSource"
          datakeynames="CustomerID"
          autogeneratedeletebutton="true"  
          autogeneraterows="true"
          allowpaging="true"
          onitemdeleting="CustomerDetailView_ItemDeleting" 
          runat="server">
               
          <fieldheaderstyle backcolor="Navy"
            forecolor="White"/>
                    
        </asp:detailsview>
        
        <asp:Label id="MessageLabel"
          forecolor="Red"
          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="DetailsViewSource" runat="server" 
          ConnectionString=
            "<%$ ConnectionStrings:NorthWindConnectionString%>"
            InsertCommand="INSERT INTO [Customers]([CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country]) VALUES (@CustomerID, @CompanyName, @Address, @City, @PostalCode, @Country)"
            SelectCommand="Select [CustomerID], [CompanyName], 
              [Address], [City], [PostalCode], [Country] 
              From [Customers]"
            DeleteCommand="DELETE FROM [Customers] WHERE [CustomerID] = @CustomerID" >
        </asp:SqlDataSource>
    </form>
  </body>
</html>

注解

当单击DetailsView控件中的 "删除" 按钮时, 但在删除操作之前引发事件。ItemDeletingThe ItemDeleting event is raised when a Delete button within the DetailsView control is clicked, but before the delete operation. 这使您可以提供一个事件处理程序, 以便在此事件发生时执行自定义例程 (如取消删除操作)。This allows you to provide an event handler that performs a custom routine, such as canceling the delete operation, whenever this event occurs.

DetailsViewDeleteEventArgs对象传递到事件处理程序, 该处理程序允许您确定要删除的记录的索引, 并指示应取消删除操作。A DetailsViewDeleteEventArgs object is passed to the event handler, which allows you to determine the index of the record being deleted and to indicate that the delete operation should be canceled. 若要取消删除操作, 请将Cancel属性设置true为。To cancel the delete operation, set the Cancel property to true. 如果需要, 还可以KeysValues将值传递给数据源之前操作和集合。You can also manipulate the Keys and Values collections, if necessary, before the values are passed to the data source.

有关如何处理事件的详细信息, 请参阅处理和引发事件For more information about how to handle events, see Handling and Raising Events.

适用于

另请参阅