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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 41 372 fois - Téléchargée 34 fois

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

Ajouter un commentaire

Commentaires

bendsiham
Messages postés
78
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
23 juin 2017

Bonjour

je voudrais ajouter un message de confirmation lors que l'utilisateur
click sur l'evenement par exemple modifier dans le datagrid(asp.net,vb.net 2008)j'ai essayé avec ce code mais rien ne s'affiche !!
Sub DataGrid_ItemCreated(ByVal Sender As Object, ByVal e As DataGridItemEventArgs)
Select Case e.Item.ItemType
Case ListItemType.Item, ListItemType.AlternatingItem, ListItemType.EditItem
Dim myTableCell As TableCell
myTableCell = e.Item.Cells(10)
Dim myDeleteButton As ImageButton
myDeleteButton = myTableCell.Controls(0)
myDeleteButton.Attributes.Add("onclick", "return confirm('Etes vous sur de vouloir valider?');")
End Select
End Sub

vloià le code de mon datagrid:


<Columns></Columns><EditRowStyle Font-Size="Smaller" /><FooterStyle BackColor="#E12D00" Font-Bold="True" ForeColor="White" /><HeaderStyle BackColor="#F20000" BorderStyle="None" Font-Bold="False"
Font-Size="Smaller" ForeColor="White" /><RowStyle BackColor="#FFFFCC" Font-Size="Smaller" ForeColor="#003366" /><SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" /> merci d'avance
cs_AMSOLL
Messages postés
8
Date d'inscription
lundi 21 décembre 2009
Statut
Membre
Dernière intervention
13 mars 2011

Slt tous,
je travail sur un projet d'une application web ASP.NET,
j'ai une FormView,et je veux supprimer un enregistrement à partir de celle;
j'ai afficher un message de confirmation en cliquant sur le bouton "Delete"

protected void LinkButton1_Click(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "StartUpScript", "if (window.confirm('are you sur'))", true);
}
Mais le problème c'est que je sais pas comment faire pour retenir la réponse de l'utilisateur sur le message (si on fait la suppression ou non en utilisant le code FormView1.DeleteItem(); )
SVP c'est très très urgent
merci
harras
Messages postés
7
Date d'inscription
jeudi 24 novembre 2005
Statut
Membre
Dernière intervention
20 novembre 2008

J'ai Besoin de votre aide !!!
OnclientClick ou button.Attributs.add("Onclick",js .....etc
mon code BtLink.OnclientClick ="Appel Fonction js" dans une grid view marche très bien .
Mon problèlme c'est quand il y'a bcp d'enregistrement 800 par exemple le temps de chargement de ma page aspx est lent . presque 2 minute
Aprés le chargement sa fonction bien

mon code est le suivant:

Protected Sub grVehicule_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grVehicule.RowDataBound
If Not e.Row.FindControl("Linkbutton2") Is Nothing Then
CType(e.Row.FindControl("LinkButton2"), LinkButton).Attributes("onclick") = "CreateMm();return false;"
End If
Endsub

Merci d'avance!!!
harras
Messages postés
7
Date d'inscription
jeudi 24 novembre 2005
Statut
Membre
Dernière intervention
20 novembre 2008

POUR AMENEDEMTG:
LA convertion du code :

If Not e.Row.FindControl("imgbtnActionDelete") Is Nothing Then
CType(e.Row.FindControl("imgbtnActionDelete"), ImageButton).Attributes("onclick") = "return confirm('Are you sure you want to remove this record ?');"

EN C#:

if ((e.Row.FindControl("imgbtnActionDelete") != null)) {
((ImageButton)e.Row.FindControl("imgbtnActionDelete")).Attributes("onclick") = "return confirm('Are you sure you want to remove this record ?');";
}
Pour faire la convertion C#>>VB.Net ou l'inverse cliquez ici:
http://www.developerfusion.com/tools/convert/vb-to-csharp/
harras
Messages postés
7
Date d'inscription
jeudi 24 novembre 2005
Statut
Membre
Dernière intervention
20 novembre 2008

Besoin d'aide !!!

mon code BtLink.OnclientClick ="Appel Fonction js" dans une grid view marche très bien .
Mon problèlme c'est quand il y'a bcp d'enregistrement 800 par exemple le temps de chargement de ma page aspx est lent . presque 2 minute
Aprés le chargement sa fonction bien

mon code est le suivant:

Protected Sub grVehicule_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grVehicule.RowDataBound
If Not e.Row.FindControl("Linkbutton2") Is Nothing Then
CType(e.Row.FindControl("LinkButton2"), LinkButton).Attributes("onclick") = "CreateMm();return false;"
End If
Endsub

Merci d'avance!!!

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.