2010-12-10 7 views
0

Je le code jusqu'à présent:Comment supprimer un GridView Row

<asp:TemplateField ShowHeader="False" ItemStyle-Width="150px" HeaderStyle-BackColor="#003ca1" HeaderStyle-ForeColor="white"> 
    <ItemTemplate> 
     <asp:LinkButton ID="linkDelete" runat="server" CausesValidation="False" CommandName="Delete" OnClientClick='return confirm("Diesen Eintrag wirklich löschen?");' Text="Löschen" /> 
    </ItemTemplate> 
</asp:TemplateField> 

A ce moment, le GridView supprime la ligne physiquement. Je veux attraper ceci dans CodeBehind, annuler l'opération de suppression et vouloir seulement définir un "IsDeleted" -Flag dans la base de données.

Comment?

Répondre

1

Vous pouvez utiliser l'événement RowDeleting et la propriété Cancel de l'objet GridViewDeleteEventArgs pour cela. Voici ce que la page MSDN dit:

L'événement RowDeleting est déclenché lorsque le bouton Supprimer d'une ligne est cliqué, mais avant que le contrôle GridView supprime la ligne. Cela vous permet de fournir une méthode de gestion d'événements qui exécute une routine personnalisée, telle que l'annulation de l'opération de suppression, chaque fois que cet événement se produit.

Un objet GridViewDeleteEventArgs est transmis à la méthode de gestion des événements, ce qui vous permet de déterminer l'index de la ligne en cours et d'indiquer que l'opération de suppression doit être annulée. Pour annuler l'opération de suppression, définissez la propriété Cancel de l'objet GridViewDeleteEventArgs sur true. Vous pouvez également manipuler les collections Keys et Values, si nécessaire, avant que les valeurs ne soient transmises à la source de données.