Поделиться через


DetailsView.ItemDeleting Событие

Определение

Происходит при нажатии кнопки удаления в элементе управления DetailsView перед выполнением операции удаления.

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 элемента управления .


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

Комментарии

Событие ItemDeleting возникает при нажатии кнопки Удалить в элементе DetailsView управления, но перед операцией удаления. Это позволяет предоставить обработчик событий, который выполняет настраиваемую подпрограмму, например отмену операции удаления, при каждом возникновении этого события.

Объект DetailsViewDeleteEventArgs передается обработчику событий, что позволяет определить индекс удаляемой записи и указать, что операция удаления должна быть отменена. Чтобы отменить операцию удаления, присвойте свойству Cancel значение true. При необходимости можно управлять коллекциями Keys и Values перед передачей значений в источник данных.

Дополнительные сведения об обработке событий см. в разделе Обработка и вызов событий.

Применяется к

См. также раздел