Questa pagina è stata utile?
I suggerimenti relativi al contenuto di questa pagina sono importanti. Comunicaceli.
Altri suggerimenti?
1500 caratteri rimanenti
Evento RowDeleting
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Evento GridView.RowDeleting

Si verifica quando viene fatto clic sul pulsante Elimina di una riga, ma prima che il controllo GridView elimini la riga.

Spazio dei nomi:  System.Web.UI.WebControls
Assembly:  System.Web (in System.Web.dll)

public event GridViewDeleteEventHandler RowDeleting
<asp:GridView OnRowDeleting="GridViewDeleteEventHandler" />

L'evento RowDeleting viene generato quando viene fatto clic sul pulsante Elimina di una riga, ma prima che il controllo GridView elimini la riga. In questo modo è possibile fornire un metodo di gestione degli eventi in grado di eseguire una routine personalizzata, ad esempio l'annullamento dell'operazione di eliminazione, ogni volta che si verifica l'evento.

Un oggetto GridViewDeleteEventArgs viene passato al metodo di gestione degli eventi ed è quindi possibile determinare l'indice della riga corrente e richiedere l'annullamento dell'operazione di eliminazione. Per annullare l'operazione di eliminazione, impostare la proprietà Cancel dell'oggetto GridViewDeleteEventArgs su true. Se necessario, è inoltre possibile modificare gli insiemi Keys e Values prima che i valori vengano passati all'origine dati.

Per ulteriori informazioni sulla gestione degli eventi, vedere Utilizzo degli eventi.

Nell'esempio seguente viene illustrato come utilizzare l'evento RowDeleting per annullare l'operazione di eliminazione. La pagina contiene un controllo GridView che visualizza un elenco di nomi e indirizzi del cliente dal database AdventureWorksLT. Quando l'utente fa clic sul collegamento Elimina di una riga, il gestore dell'evento RowDeleting verifica il cognome della persona visualizzato nella riga che l'utente sta tentando di eliminare. Se il cognome è "Castoro", l'operazione di eliminazione viene annullata e viene visualizzato un messaggio di errore. Per tutti gli altri nomi, viene eseguita l'operazione di eliminazione e la riga viene eliminata.

Il gestore eventi utilizza la proprietà RowIndex dell'oggetto GridViewDeleteEventArgs per individuare la riga che l'utente sta tentando di eliminare. L'esempio esamina i contenuti dell'insieme Rows. Se il valore che si desidera confrontare è un valore della chiave, è possibile esaminare invece la raccolta DataKeys.

Le righe vengono eliminate dalla tabella CustomerAddress anziché dalla tabella Customer per preservare la semplicità dell'esempio. Il controllo GridView mostra il risultato dell'associazione di tre tabelle: Cliente, Indirizzo e CustomerAddress. Quando viene eliminata una riga CustomerAddress, la riga GridView corrispondente scompare. I vincoli di integrità referenziale potrebbero specificare il codice di un esempio che elimina effettivamente righe dalla tabella Customer più complessa.

Per informazioni sulla configurazione del database AdventureWorksLT, vedere 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>


.NET Framework

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2015 Microsoft