GridView.RowDeleting Ereignis

Definition

Tritt ein, wenn auf die Schaltfläche Löschen einer Zeile geklickt wird, allerdings bevor das GridView-Steuerelement die Zeile tatsächlich löscht.Occurs when a row's Delete button is clicked, but before the GridView control deletes the row.

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

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie das RowDeleting -Ereignis verwendet wird, um den Löschvorgang abzubrechen.The following example demonstrates how to use the RowDeleting event to cancel the delete operation. Die Seite enthält ein GridView Steuerelement, das eine Liste von Kundennamen und Adressen aus der AdventureWorksLT-Datenbank anzeigt.The page contains a GridView control that displays a list of customer names and addresses from the AdventureWorksLT database. Wenn der Benutzer auf den Lösch Link für eine Zeile klickt, prüft der Handler RowDeleting für das Ereignis den Nachnamen der Person, die in der Zeile angezeigt wird, die der Benutzer zu löschen versucht.When the user clicks the Delete link for a row, the handler for the RowDeleting event checks the last name of the person displayed in the row that the user is trying to delete. Wenn der Nachname "Biber" ist, wird der Löschvorgang abgebrochen, und es wird eine Fehlermeldung angezeigt.If the last name is "Beaver", the delete operation is canceled, and an error message is displayed. Bei jedem anderen Namen wird der Löschvorgang fortgesetzt, und die Zeile wird gelöscht.For any other name, the delete operation proceeds and the row is deleted.

Der Ereignishandler verwendet die RowIndex -Eigenschaft GridViewDeleteEventArgs des-Objekts, um die Zeile zu finden, die der Benutzer zu löschen versucht.The event handler uses the RowIndex property of the GridViewDeleteEventArgs object to find the row that the user is trying to delete. Im Beispiel wird der Inhalt Rows der-Auflistung untersucht.The example examines the contents of the Rows collection. Wenn der Wert, mit dem Sie vergleichen möchten, ein Schlüsselwert ist, können Sie DataKeys stattdessen die Auflistung überprüfen.If the value you want to compare to is a key value, you could examine the DataKeys collection instead.

Zeilen werden aus der CustomerAddress-Tabelle und nicht aus der Customer-Tabelle gelöscht, um das Beispiel einfach zu halten.Rows are deleted from the CustomerAddress table instead of the Customer table in order to keep the example simple. Das GridView -Steuerelement zeigt das Ergebnis der Zusammenführung von drei Tabellen: Customer, address und CustomerAddress.The GridView control shows the result of joining three tables: Customer, Address, and CustomerAddress. Wenn eine CustomerAddress-Zeile gelöscht wird, wird GridView die entsprechende Zeile nicht mehr angezeigt.When a CustomerAddress row is deleted, the corresponding GridView row disappears. Einschränkungen der referenziellen Integrität würden den Code für ein Beispiel bilden, das tatsächlich Zeilen aus der Customer-Tabelle komplexer löscht.Referential integrity constraints would make the code for an example that actually deletes rows from the Customer table more complex.

Weitere Informationen zum Einrichten der AdventureWorksLT-Datenbank finden Sie unter Gewusst wie: Richten Sie eine AdventureWorksLT-Beispieldatenbank für dieASP.net-Entwicklung ein.For information about how to set up the AdventureWorksLT database, see How to: Set Up an AdventureWorksLT Sample Database for ASP.NET Development.


<%@ 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_RowDeleting
        (Object sender, GridViewDeleteEventArgs e)
    {
        TableCell cell = CustomersGridView.Rows[e.RowIndex].Cells[2];
        if (cell.Text == "Beaver")
        {
            e.Cancel = true;
            Message.Text = "You cannot delete customer Beaver.";
        }
        else
        {
            Message.Text = "";
        }
    }  

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>GridView RowDeleting Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <h3>
        GridView RowDeleting Example
    </h3>
    <asp:Label ID="Message" ForeColor="Red" runat="server" />
    <br />
    <asp:GridView ID="CustomersGridView" runat="server" 
        DataSourceID="CustomersSqlDataSource" 
        AutoGenerateColumns="False"
        AutoGenerateDeleteButton="True" 
        OnRowDeleting="CustomersGridView_RowDeleting"
        DataKeyNames="CustomerID,AddressID">
        <Columns>
            <asp:BoundField DataField="FirstName" 
                HeaderText="FirstName" SortExpression="FirstName" />
            <asp:BoundField DataField="LastName" HeaderText="LastName" 
                SortExpression="LastName" />
            <asp:BoundField DataField="City" HeaderText="City" 
                SortExpression="City" />
            <asp:BoundField DataField="StateProvince" HeaderText="State" 
                SortExpression="StateProvince" />
        </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="CustomersSqlDataSource" runat="server"
        SelectCommand="SELECT SalesLT.CustomerAddress.CustomerID, 
            SalesLT.CustomerAddress.AddressID, 
            SalesLT.Customer.FirstName, 
            SalesLT.Customer.LastName, 
            SalesLT.Address.City, 
            SalesLT.Address.StateProvince 
            FROM SalesLT.Customer 
            INNER JOIN SalesLT.CustomerAddress 
            ON SalesLT.Customer.CustomerID = 
                SalesLT.CustomerAddress.CustomerID 
            INNER JOIN SalesLT.Address ON SalesLT.CustomerAddress.AddressID = 
                SalesLT.Address.AddressID"
        DeleteCommand="Delete from SalesLT.CustomerAddress where CustomerID = 
            @CustomerID and AddressID = @AddressID" 
        ConnectionString="<%$ ConnectionStrings:AdventureWorksLTConnectionString %>">
        <DeleteParameters>
            <asp:Parameter Name="AddressID" />
            <asp:Parameter Name="CustomerID" />
        </DeleteParameters>
    </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">

    Private Sub CustomersGridView_RowDeleting _
        (ByVal sender As [Object], _
        ByVal e As GridViewDeleteEventArgs)
        Dim cell As TableCell
        cell = CustomersGridView.Rows(e.RowIndex).Cells(2)
        If cell.Text = "Beaver" Then
            e.Cancel = True
            Message.Text = "You cannot delete customer Beaver."
        Else
            Message.Text = ""
        End If
    End Sub
    
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>GridView RowDeleting Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <h3>
        GridView RowDeleting Example
    </h3>
    <asp:Label ID="Message" ForeColor="Red" runat="server" />
    <br />
    <asp:GridView ID="CustomersGridView" runat="server" 
        DataSourceID="CustomersSqlDataSource" 
        AutoGenerateColumns="False"
        AutoGenerateDeleteButton="True" 
        OnRowDeleting="CustomersGridView_RowDeleting"
        DataKeyNames="CustomerID,AddressID">
        <Columns>
            <asp:BoundField DataField="FirstName" 
                HeaderText="FirstName" SortExpression="FirstName" />
            <asp:BoundField DataField="LastName" HeaderText="LastName" 
                SortExpression="LastName" />
            <asp:BoundField DataField="City" HeaderText="City" 
                SortExpression="City" />
            <asp:BoundField DataField="StateProvince" HeaderText="State" 
                SortExpression="StateProvince" />
        </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="CustomersSqlDataSource" runat="server"
        SelectCommand="SELECT SalesLT.CustomerAddress.CustomerID, 
            SalesLT.CustomerAddress.AddressID, 
            SalesLT.Customer.FirstName, 
            SalesLT.Customer.LastName, 
            SalesLT.Address.City, 
            SalesLT.Address.StateProvince 
            FROM SalesLT.Customer 
            INNER JOIN SalesLT.CustomerAddress 
            ON SalesLT.Customer.CustomerID = 
                SalesLT.CustomerAddress.CustomerID 
            INNER JOIN SalesLT.Address ON SalesLT.CustomerAddress.AddressID = 
                SalesLT.Address.AddressID"
        DeleteCommand="Delete from SalesLT.CustomerAddress where CustomerID = 
            @CustomerID and AddressID = @AddressID" 
        ConnectionString="<%$ ConnectionStrings:AdventureWorksLTConnectionString %>">
        <DeleteParameters>
            <asp:Parameter Name="AddressID" />
            <asp:Parameter Name="CustomerID" />
        </DeleteParameters>
    </asp:SqlDataSource>
    </form>
</body>
</html>

Hinweise

Das RowDeleting -Ereignis wird ausgelöst, wenn auf die Schaltfläche Löschen einer Zeile geklickt wird GridView , jedoch bevor das-Steuerelement die Zeile löscht.The RowDeleting event is raised when a row's Delete button is clicked, but before the GridView control deletes the row. Dies ermöglicht es Ihnen, eine Ereignis Behandlungsmethode bereitzustellen, die eine benutzerdefinierte Routine (z. b. das Abbrechen des Löschvorgangs) ausführt, wenn dieses Ereignis eintritt.This enables you to provide an event-handling method that performs a custom routine, such as canceling the delete operation, whenever this event occurs.

Ein GridViewDeleteEventArgs -Objekt wird an die Ereignis Behandlungsmethode, die es Ihnen ermöglicht, den Index der aktuellen Zeile zu bestimmen und anzugeben, dass der Löschvorgang abgebrochen werden soll.A GridViewDeleteEventArgs object is passed to the event-handling method, which enables you to determine the index of the current row and to indicate that the delete operation should be canceled. Um den Löschvorgang abzubrechen, legen Cancel Sie die- GridViewDeleteEventArgs Eigenschaft des true-Objekts auf fest.To cancel the delete operation, set the Cancel property of the GridViewDeleteEventArgs object to true. Sie können auch die- Keys Auflistung Values und die-Auflistung ggf. bearbeiten, bevor die Werte an die Datenquelle übermittelt werden.You can also manipulate the Keys and Values collections, if necessary, before the values are passed to the data source.

Weitere Informationen zum Behandeln von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.For more information about how to handle events, see Handling and Raising Events.

Gilt für:

Siehe auch