GridView.RowDeleting Událost

Definice

Vyvolá se při kliknutí na tlačítko pro odstranění řádku, ale před tím, než GridView ovládací prvek odstraní řádek.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 

Event Type

GridViewDeleteEventHandler

Příklady

Následující příklad ukazuje, jak použít RowDeleting událost pro zrušení operace odstranění.The following example demonstrates how to use the RowDeleting event to cancel the delete operation. Stránka obsahuje GridView ovládací prvek, který zobrazuje seznam názvů zákazníků a adres z databáze AdventureWorksLT.The page contains a GridView control that displays a list of customer names and addresses from the AdventureWorksLT database. Když uživatel klikne na odkaz Odstranit pro řádek, obslužná rutina RowDeleting události zkontroluje příjmení osoby zobrazené na řádku, který uživatel chce odstranit.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. Pokud je příjmení "Beaver", operace odstranění se zruší a zobrazí se chybová zpráva.If the last name is "Beaver", the delete operation is canceled, and an error message is displayed. Pro jakýkoli jiný název operace odstranění pokračuje a řádek je odstraněn.For any other name, the delete operation proceeds and the row is deleted.

Obslužná rutina události používá RowIndex vlastnost GridViewDeleteEventArgs objektu k vyhledání řádku, který se uživatel pokouší odstranit.The event handler uses the RowIndex property of the GridViewDeleteEventArgs object to find the row that the user is trying to delete. V příkladu se prověřuje obsah Rows kolekce.The example examines the contents of the Rows collection. Pokud hodnota, na kterou chcete porovnat, je klíčovou hodnotou, můžete DataKeys místo toho ověřit kolekci.If the value you want to compare to is a key value, you could examine the DataKeys collection instead.

Řádky se odstraní z tabulky CustomerAddress místo z tabulky Customer, aby byl příklad jednoduchý.Rows are deleted from the CustomerAddress table instead of the Customer table in order to keep the example simple. GridViewOvládací prvek zobrazuje výsledek spojení tří tabulek: zákazník, adresa a CustomerAddress.The GridView control shows the result of joining three tables: Customer, Address, and CustomerAddress. Když se odstraní řádek CustomerAddress, odpovídající GridView řádek zmizí.When a CustomerAddress row is deleted, the corresponding GridView row disappears. Omezení referenční integrity by způsobilo, že kód pro příklad, který skutečně odstraní řádky z tabulky Customer, je složitější.Referential integrity constraints would make the code for an example that actually deletes rows from the Customer table more complex.

Informace o tom, jak nastavit databázi AdventureWorksLT, naleznete v tématu How to: set a the AdventureWorksLT Sample Database for ASP.NET Development.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>

Poznámky

RowDeletingUdálost se vyvolá při kliknutí na tlačítko pro odstranění řádku, ale před tím, než GridView ovládací prvek odstraní řádek.The RowDeleting event is raised when a row's Delete button is clicked, but before the GridView control deletes the row. To umožňuje zadat metodu zpracování událostí, která provede vlastní rutinu, například zrušení operace delete, kdykoli k této události dojde.This enables you to provide an event-handling method that performs a custom routine, such as canceling the delete operation, whenever this event occurs.

GridViewDeleteEventArgsObjekt je předán metodě zpracování událostí, která umožňuje určit index aktuálního řádku a označit, že operace odstranění by měla být zrušena.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. Chcete-li zrušit operaci odstranění, nastavte Cancel vlastnost GridViewDeleteEventArgs objektu na hodnotu true .To cancel the delete operation, set the Cancel property of the GridViewDeleteEventArgs object to true. V případě potřeby můžete také manipulovat Keys s Values kolekcemi a, než budou hodnoty předány do zdroje dat.You can also manipulate the Keys and Values collections, if necessary, before the values are passed to the data source.

Další informace o zpracování událostí naleznete v tématu manipulace a vyvolávání událostí.For more information about how to handle events, see Handling and Raising Events.

Platí pro

Viz také