Message de confirmation dans gridview

mdemo Messages postés 90 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 10 mai 2010 - 10 mai 2006 à 16:37
mdemo Messages postés 90 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 10 mai 2010 - 17 oct. 2006 à 10:22
Bonjour,

Je souhaite faire apparaitre un message de confirmation, avec OK et CANCEL par exemple, sur le Delete d'un gridview.
J'obtiens le type de fenêtre que je souhaite avec le code suivant placé sur un bouton :

Button1.Attributes.Add(
"onclick",
"if(confirm('Are you sure to delete?')){}else{return false}")


Mais je n'arrive pas à le placer sur le delete. Que dois-je faire ?

Merci d'avance pour votre aide.

6 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
10 mai 2006 à 17:38
Bonjour,

il faut placer ca lors du databinding

protected sub gridview_itemdatabound(sender as object, e as trucEventArgs)

e.item.findControl("button1").attributes.add(...
end sub


<HR>
Cyril - MVS - MCP
0
mdemo Messages postés 90 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 10 mai 2010
11 mai 2006 à 10:23
Bonjour Cyril,


Merci pour ton aide, mais je ne m'en sors toujours pas.


Le gridview ne me donne accès qu'à GridView3_DataBound ou GridView3_DataBinding

Dans les 2 cas e.item... n'est pas accepté pour retrouver le bouton (créé en colonne template). J'ai donc essayé le code suivant mais là encore le bouton n'est pas retrouvé.



Protected
Sub GridView3_DataBound(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles GridView3.DataBound



Dim BtnDel
As
New Button


BtnDel = gridview3.FindControl(
"BtnDelete")


BtnDel.Attributes.Add(
"onclick",
"if(confirm('Are you sure to delete?')){}else{return false}")



End
Sub


En cliquant directement sur le delete la row n'est pas reconnue. Le bouton ne peut donc pas l'être non plus.

J'arrive à retrouver le bouton si je place un select, puis si je clique sur le delete et me place dans le rowcommand. Mais ce n'est pas vraiment le fonctionnement que je souhaite. Et dans ce cas l'ajoût d'attribut est placé trop tard et ne fonctionne pas.



Protected
Sub GridView3_RowCommand(
ByVal sender
As
Object,
ByVal e
As System.Web.UI.WebControls.GridViewCommandEventArgs)
Handles GridView3.RowCommand


If e.CommandName =
"Delete"
Then



Dim BtnDel
As
New Button


BtnDel = GridView3.SelectedRow.FindControl(
"BtnDelete")


BtnDel.Attributes.Add(
"onclick",
"if(confirm('Are you sure to delete?')){}else{return false}")



End
If



End
Sub

Any idea ? Merci d'avance.
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
11 mai 2006 à 14:50
Bonjour,

tout est expliqué ici : http://www.aspfr.com/tutoriaux/DEBUG-ASP-NET-AVEC-VISUAL-STUDIO_384.aspx


<HR>
Cyril - MVS - MCP
0
mdemo Messages postés 90 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 10 mai 2010
11 mai 2006 à 19:23
Je te remercie pour ta réponse. Tutorial très intéressant.
J'utilise le débogage très souvent et c'est comme ça que j'ai pu constaté ce que j'ai écrit dans mon message précédent.
J'ai fini par résoudre mon problème sans passer par les évènements mais en plaçant tout simplement le script sur le onclick du bouton delete que j'ai mis en template.
Le seul problème avec ces scripts est que je ne vais pas réussir à gérer ça en multilingue avec les ressources, mais on fera avec !
Bonne soirée !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
io_ost Messages postés 151 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 6 février 2009
13 oct. 2006 à 14:10
bonjour,

Je suis arriver à faire à peu près la même : j'ai fais une function dans le script de la page aspx que j'ai ensuite attriber a la proprité onClientClick du linkbutton du template item

mais je n'arrive pas empêcher le delete de mon row quelque soit le choix dans la boite de dialogue...


 


si vous avez une idée....
0
mdemo Messages postés 90 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 10 mai 2010
17 oct. 2006 à 10:22
Bonjour,


Il faut créer un template field dans ton gridview et ça donne celà:



asp



:
TemplateField



ShowHeader
="False">






<
ItemTemplate
>






<
asp
:
Button



ID
="BtnDelete"



runat
="server"



CommandName
="Delete"



Text
="Delete"



OnClientClick
="return confirm('Are you sure you want to delete this record?');"



/>








</
ItemTemplate
>






</
asp
:
TemplateField
>



Ca marche sans problème, et l'avantage est que tout est côté client. Mon seul gros problème avec cette solution est qu'elle ne me permet pas de gérer la localisation et les ressources proprement.

J'ai depuis découvert un tutorial sur asp.net. Tu trouveras plus d'explications. Je ne l'ai pas regardé en détail mais ça ressemble à ce que j'ai fait..
http://www.asp.net/learn/dataaccess/tutorial22vb.aspx?tabid=63

Bonne journée

 
0
Rejoignez-nous