Confirmer la suppression lors d'un click sur un bouton commandname="delete" d'un datagrid

Contenu du snippet

Si comme moi vous avez fait un datagrid, et vous avez autoriser la suppression, via les commandes d'un datagrid. Vous vous êtes surement sentis genés par le fait que lorsque vous cliquer sur le lien, l'element soit directement supprimé.

Voici l'astuce qui va permettre d'afficher une fenetre javascript, lors d'un click sur le lien, et ca sans faire de postback.

C'est relativement simple, mais étant donné que je viens de mettre presque une heure pour trouver le truc, je vous le met ici.

Les quelques lignes ci dessous, recherchent le controle qui fait la suppression, ici son id est linkbutton4, et ensuite rajoute l'attribut onclick, avec un petit bout de code javascript.

La fonction CType(e.Item.DataItem, DataRowView).Row permet de connaitre la ligne en cours ensuite pour l'exemple j'ai mis CType(e.Item.DataItem, DataRowView).Row.Item("ID").ToString pour connaitre l'ID de la ligne a supprimé.

Source / Exemple :


"Le datagrid doit ressembler à ca : "

	<asp:templatecolumn>
		<itemtemplate>
			<asp:linkbutton id="Linkbutton4" runat="server" text="Supprimer" commandname="Delete" causesvalidation="false">
				<img alt="Supprimer" src="images/delete.gif" border="0" />
			</asp:linkbutton>
		</itemtemplate>
	</asp:templatecolumn>

"Puis ajouter ca dans votre fichier de Code Behind" 

    Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
        If Not e.Item.FindControl("Linkbutton4") Is Nothing Then
            CType(e.Item.FindControl("Linkbutton4"), LinkButton).Attributes("onclick") = "return confirm('Voulez-vous vraiment supprimer la ligne N°" & CType(e.Item.DataItem, DataRowView).Row.Item("ID").ToString  &  "?');"
        End If
    End Sub

Conclusion :


J'attends vos commentaires :)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.