Perchè l'evento GridViewDeleteRow viene generato 2 volte?

mercoledì 15 ottobre 2008 - 14.24

stuzzo Profilo | Junior Member

Ciao,
ho un problema che non riesco proprio a risolvere....e non so secondo quale principio possa accadere una cosa del genere.
Ho un gridview nella mia pagina, dove ho fatto in modo che vengono creati per ogni riga i tasti modifica e elimina. Il problema sorge quando effettuo la cancellazione di un record...non so per quale barbaro motivo il metodo RowDeleting venga invocato 2 volte, la prima volta il record viene cancellato, ma la seconda volta genera un errore perchè non trova nulla a quella posizione.
So che dovrei fare un controllo sul tipo di evento, così da essere sicuro da cosa venga generato il row deleting, ma non so come fare...
ecco un po' di codice:
<asp:GridView ID="gvEsperienza" runat="server" AutoGenerateColumns="False" OnRowEditing="gvEsperienza_RowEditing" OnRowDeleting="gvEsperienza_RowDeleting" DataKeyNames="Esperienza" >
<Columns>
<asp:CommandField ButtonType="Image" EditImageUrl="~/img/dealer_web.gif" EditText="" ShowEditButton="True" />
<asp:CommandField ShowDeleteButton="True" ButtonType="Image" DeleteImageUrl="~/img/VediNo.gif" DeleteText="" ShowCancelButton="False" />
<asp:TemplateField ItemStyle-HorizontalAlign="Left" HeaderText="Esperienza">
<ItemTemplate >
<asp:Label id="lblEsperienza" runat="server" Text='<%# Bind("Esperienza") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

protected void gvEsperienza_RowEditing(object sender, GridViewEditEventArgs e)
{
//qua dovrebbe esserci un controllo per confrontare il tipo, ma non so come si fa e se dipenda da questo il problema.
int key = e.NewEditIndex; // per recuperare l'indice che ha scaturito la delete
}

grazie a tutti!!
Alfredo Aiello
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5