begin process at 2012 02 08 19:04:16
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > CONFIRMER LA SUPPRESSION LORS D'UN CLICK SUR UN BOUTON COMMANDNAME="DELETE" D'UN DATAGRID

CONFIRMER LA SUPPRESSION LORS D'UN CLICK SUR UN BOUTON COMMANDNAME="DELETE" D'UN DATAGRID


 Information sur la source

Note :
10 / 10 - par 3 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Source .NET ( DotNet ) Classé sous :datagrid, confirmation, suppression Niveau :Débutant Date de création :20/02/2005 Date de mise à jour :22/02/2005 19:12:07 Vu :19 097

Auteur : jesusonline

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note


 Description

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

  • "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
"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 :)


 Historique

22 février 2005 19:12:07 :
J'ai rajouté la possibilité de rajouter un champ de la ligne en cours, dans le message JS

 Sources du même auteur

Source avec Zip Source .NET (Dotnet) UTILISATION DE LA MÉTHODE SORT ET SORTDIRECTION AVEC UN GRID...
Source .NET (Dotnet) RESPONSE.FILTER : MANIPULATION DU STREAM DE SORTIE ASP.NET
Source avec Zip Source .NET (Dotnet) OPTIMISATION DE LA SERIALISATION JSON POUR LES LIST<T>
Source avec Zip Source .NET (Dotnet) CRAWLABLELINKBUTTON : UPDATEPANEL ET RÉFÉRENCEMENT
Source .NET (Dotnet) POSTBACKCONTROL - COMMUNICATION CLIENT/SERVEUR AVEC LES UPDA...

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) ASP.NET - SAVOIR QUAND L'UTILISATEUR FERME LA FENETRE VIA CA... par werdDomain
CLASSE IMBRIQUÉS EN VBSCRIPT DE DOSSIERS (APPLICABLE ASP) par internetdev
Source avec Zip SÉRIALISER / DÉSÉRIALISER DES VARIABLES EN ASP par lejdu
CREATION D'UN AUTOCOMPLETE JQUERY AVEC UN CODE SOURCE ASP ET... par dedebis84
Source .NET (Dotnet) RÉCUPÉRER DES VALEURS D'UNE LIGNE DANS UN DATAGRID APRÈS AVO... par PascalCmoa

 Sources en rapport avec celle ci

Source .NET (Dotnet) RÉCUPÉRER DES VALEURS D'UNE LIGNE DANS UN DATAGRID APRÈS AVO... par PascalCmoa
Source avec Zip Source .NET (Dotnet) COLONNE DE CHECKBOX AVEC "CHECKALL" DANS LE HEADER par cedricperes
Source avec Zip Source .NET (Dotnet) DATAGRID AVEC RECHERCHE ALPHABÉTIQUE par gatita_dev
Source .NET (Dotnet) AFFICHER LE CONTENU D'UNE FEUILLE EXCEL DANS UN DATAGRID par jimmy69
Source avec Zip Source .NET (Dotnet) GESTION DES UTILISATEURS par jarod_mmc

Commentaires et avis

Commentaire de SuperBouly le 22/02/2005 06:28:07

J'ai pas encore testé, mais ça va servir !!
Il reste à rajouter dans le message javascript le contenu d'une colonne pour obtenir quelquechose du genre :
"voulez-vous vraiment supprimer Mr Machin de la liste ?"
As-tu quelquechose d'aussi fulgurant?
Gilles

Commentaire de jesusonline le 22/02/2005 18:32:17 administrateur CS

Je n'ai pas voulu  complexifier la source, mais bien sur que c'est possible.

Voici la ligne magique

CType(e.Item.DataItem, DataRowView).Row.Item("Name").ToString  

Finalement ca complique peut etre pas tant que ca, je vais mettre à jour

Cyril

Commentaire de SuperBouly le 23/02/2005 09:21:14

Ouh ! J'ai perdu une occasion de me taire...

Commentaire de jesusonline le 23/02/2005 10:02:30 administrateur CS

Non, t'as bien fait de demander, car c'est surement une chose que beaucoup de personnes aurait cherché.

Je tient à preciser que si le client n'accepte pas Javascript, cela supprime sans demander l'avis.

Cyril

Commentaire de SuperBouly le 24/02/2005 16:33:45

J'ai testé, ça marche très bien.
Je l'ai testé sur un site sans code behind, développé sous DreamWeaver. Le serveur plante sur l'instruction :
CType(e.Item.DataItem, DataRowView).Row.Item("ID ").ToString ,
et déclare le cast non valide (pourquoi ?) Je dois écrire à la place :
e.Item.DataItem("ID ").ToString,  et là tout va très bien.
Si cette remarque peut profiter à quelqu'un&#8230;
Gilles

Commentaire de dobtom25 le 25/04/2005 15:40:22

J'aimerais bien savoir la syntaxe pour la suppression de la ligne en cours...
Merci

Commentaire de cleonat le 07/08/2005 19:46:19

Super !!!! J'avais très peur car on me donnais des exemples avec des fichiers .js et j'y connais rien
En 15 sec j'ai intégré ton code

Un mega merci

Commentaire de duce_foutou le 24/08/2005 00:33:34

voila j'ai teste le code et j'ai voulu plutot mettre le bout de code behind dans le datagride_delecommande ca ne marche pas j'aimerai de l'aide
voici mon code
Private Sub dgChaine_deleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgChaine.DeleteCommand
        Dim iChaine_ID As Int32 = CType(dgChaine.DataKeys(e.Item.ItemIndex), Int32)
        Dim iResult As Int32
        'Dim oConn As New OleDb.OleDbConnection(getConnString)
        Dim sSQL As String
        sSQL = String.Format("Delete From Chaine WHERE Chaine_Id=" & iChaine_ID)
        Dim oCon As New SqlClient.SqlConnection(ConnString)
        Dim oComm As New SqlClient.SqlCommand(sSQL, oCon)
        If Not e.Item.FindControl("Button2") Is Nothing Then
            CType(e.Item.FindControl("Button2"), Button).Attributes("onclick") = "return confirm('Voulez-vous vraiment supprimer la ligne N°" '& CType(e.Item.DataItem, DataRowView).Row.Item("ID").ToString & "?');"
        End If
        oCon.Open()
        oComm.ExecuteNonQuery()
        oComm.Dispose()
        oCon.Close()
        dgChaine.EditItemIndex = -1
        BindData()
    End Sub

Commentaire de outofcontrol le 08/09/2005 11:52:42

Un GROS GROS Merci à toi pour cette source et toutes les autres postées. C'est une aide precieuse pour moi

OutOfControl

Commentaire de miss11 le 17/05/2006 17:09:01

Le code de ctype ressemble a koi ??

Commentaire de steph95140 le 20/06/2006 10:12:02

ENORME, ce si minuscule bout de code ^^
Je cherchais encore, il y a qques jours comment l'on pouvais faire XD

voici le bout de code pour ceux qui code en C# :

private void dgEcran_ItemDataBound(object sender, DataGridItemEventArgs e) {
   if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
      // Récupère le control
      LinkButton Delete = (LinkButton)e.Item.Cells[e.Item.Cells.Count - 1].Controls[0];
      // Ajoute la fonction
      Delete.Attributes.Add("onclick", "return confirm('Voulez-vous vraiment supprimer \\'" + e.Item.Cells[1].Text + "\\' ?');");
}
}

Commentaire de cbu le 31/10/2006 14:06:35

Bon bah j'ai mis ma note .. :)
adapté à mon Gridview cela marche du feu :

        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 ?');"
        End If

Commentaire de amenedemtg le 02/03/2007 11:36:15

Salut je suis un debutant comment pourais je adapter ce bout de code a mon datagrid //je code en c#//
Merci

Commentaire de harras le 20/11/2008 14:39:21

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!!!

Commentaire de harras le 20/11/2008 14:42:37

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/

Commentaire de harras le 20/11/2008 14:44:12

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!!!

Commentaire de AMSOLL le 11/12/2010 19:08:55

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

Commentaire de bendsiham le 06/06/2011 18:34:44

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:


<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AutoGenerateColumns="False" CellPadding="4" DataKeyNames="id_conge"
ForeColor="#333333" GridLines="None" Height="102px" Width="679px"><AlternatingRowStyle BackColor="White" /><Columns><asp:ButtonField ButtonType="Image" HeaderText="Imp"
ImageUrl="~/image/imprimante.gif" Text="Bouton" /><asp:BoundField DataField="id_conge" HeaderText="N° congé" ReadOnly="True" /><asp:BoundField DataField="matricule" HeaderText="Matricule" ReadOnly="True" /><asp:BoundField DataField="Nom" HeaderText="Nom " ReadOnly="True" /><asp:BoundField DataField="Prénom" HeaderText="Prénom" ReadOnly="True" /><asp:BoundField DataField="Date Demande" HeaderText="D. Demande" /><asp:BoundField DataField="Date départ" HeaderText="D.départ" /><asp:BoundField DataField="Date retour" HeaderText="D. retour" /><asp:BoundField DataField="duree" HeaderText="Duree" SortExpression="duree" /><asp:BoundField DataField="Date validation" HeaderText="D. validation"
ReadOnly="True" SortExpression="date_validation" /><asp:CommandField ButtonType="Image" EditImageUrl="~/image/valide.gif"
HeaderText="Valid" InsertImageUrl="~/image/valide.gif"
SelectImageUrl="~/image/valide.gif" ShowSelectButton="True"
UpdateText="validation" /><asp:CommandField ButtonType="Image" CancelImageUrl="~/image/stop.gif"
EditImageUrl="~/image/update.gif" HeaderText="MiàJ"
SelectImageUrl="~/image/update.gif" ShowEditButton="True" ShowHeader="True"
UpdateImageUrl="~/image/update.gif" /><asp:CommandField ButtonType="Image" DeleteImageUrl="~/image/delete.gif"
HeaderText="Supp" ShowDeleteButton="True" ShowHeader="True" /></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" /><PagerSettings FirstPageText="" /><PagerStyle BackColor="#FFFFCC" ForeColor="Black" HorizontalAlign="Right" /><RowStyle BackColor="#FFFFCC" Font-Size="Smaller" ForeColor="#003366" /><SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" /></asp:GridView>  merci d'avance

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

suppression d une colonne dans un datagrid [ par jordan2345 ] benj ai un grand besoin d'aide pour une datagrid. je l initialise avec une procedure stockée. J en ai deja fait sauf que d habitude je connais les col Suppression d'une ligne dans un datagrid [ par Pepin21 ] Bonjour,voil&#224; mon probl&#232;me : je remplie un datagrid avec un DataReader. Au click du bouton "annuler" je voudrais que les lignes du datagrid& confirmation de suppression [ par Stef ] Salut à tous!Sauriez vous me dire comment je peux faire pour créer une page popup type de demande de confirmation de suppression d'enregistrement ds u suppression d'une ligne dans un datagrid [ par narjisovish ] bonjour je voudrais supprimer une ligne de mon datagrid ki est li&#233;e a une base de donn&#233;es oracle voila le code Sub dgData_Delete(ByVal obj A Message de confirmation avec javascript dans une datagrid [ par bendsiham ] 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. image dans datagrid [ par akuma7 ] bonjour, je suis debutante en ASP.net. j utilise ASP.net et SQL server D'abord, quand je télécharge une image, je l'insere dans une table images avec Suppression du Gridview [ par aniakuos5 ] Bonjour, J'ai une gridview qui se remplie des champs de la page. je veux savoir comment je peux supprimer une ligne du gridview [^^confus2] ania [Clos] suppression de compte [ par campanella ] ca fait 30 min que j'essaye de supprimer mon compte en vain, comment faire ? merci d'avance suppression [ par rony ] bjr,comment supprimer ou effacer un champ dans une tableLe code suivant supprime toute ma ligne or je ne souhaite que effacer le contenu d'un champ qu suppression auto [ par rony ] bjr,A partir d'une date qui se trouve dans chaque enregistrement de ma table puis je effectuer une suppression automatique des enregistrements qui da


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,076 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales