Attributs "onclick" et ASP.NET 2 [Résolu]

SuperBouly 411 Messages postés dimanche 1 février 2004Date d'inscription 8 mai 2010 Dernière intervention - 18 oct. 2006 à 19:01 - Dernière réponse : SuperBouly 411 Messages postés dimanche 1 février 2004Date d'inscription 8 mai 2010 Dernière intervention
- 18 oct. 2006 à 21:22
Bonjour,


Nouveau venu dans l'ASP.NET 2, je m'émerveille devant le maniement simple des GridViews sous VS 2005, ses connexoins quasi automatiques aux données,  mais…



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




Je désire qu'avant de supprimer un enregistrment, un message me dise " Voulez-vous vraiment etc… "


J'ai écrit un peu comme avant, dans VS2003 :



 





Protected

Sub MonGridView_DataBound(ByVal sender AsObject, ByVal e As System.EventArgs) Handles MonGridView.DataBound






           
Dim ro As GridViewRow






           
For
Each ro In MonGridView.Rows






    
           
If ro.RowType = DataControlRowType.DataRow Then






                   
Dim btnDel As Button = CType(ro.Cells(9).Controls(0), Button) 'la cellule 9 est celle du bouton






                    btnDel.Attributes.Add("onclick", "return confirm('Voulez-vous vraiment supprimer cet enregistrement ?');")






 







               
End
If







           
Next







       
End
Sub








Eh bien ça marche, mais le bouton  n'effectue plus son postback. En regardant la source de la page, on voit ce code :



"button" value"Delete" onclick="return confirm('Voulez-vous vraiment supprimer cet enregistrement?');javascript:__doPostBack('MonGridView','Delete$4')"language="javascript" />



 




Les 2 javascript semblent mal cohabiter, que faire …?


Je précise que c'est pareil avec "Handles MonGridView.RowDataBound"




 





Merci de vos tuyaux


Gilles



http://www.aspfr.com 
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
SuperBouly 411 Messages postés dimanche 1 février 2004Date d'inscription 8 mai 2010 Dernière intervention - 18 oct. 2006 à 21:22
3
Merci
Bon, résultat des courses, j'ai écrit une fonction dans le <HEAD> :

 function confirmeSuppr()
{ return confirm('Voulez_vous etc...') ;
}

ensuite, j'ai persisté dans le code :
btnDel.OnClientClick &= "confirmeSuppr();"
Et ça fonctionne  ! Va comprendre ...
Merci de tes conseils
@+Gilles

Merci SuperBouly 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de SuperBouly
cs_Nurgle 1648 Messages postés samedi 6 novembre 2004Date d'inscription 28 avril 2011 Dernière intervention - 18 oct. 2006 à 20:03
0
Merci
Salut,

Ton Button possède une propriété OnClientClick qui te permet de spécifier du code javascript qui sera exécuté lors du click, avant le postback (comme toujours, si ta fonction renvoie false, pas de postback).
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.button.onclientclick.aspx

A++
 


<hr width="100%" size="2" />
Nurgle(Antoine)
Commenter la réponse de cs_Nurgle
SuperBouly 411 Messages postés dimanche 1 février 2004Date d'inscription 8 mai 2010 Dernière intervention - 18 oct. 2006 à 20:48
0
Merci
Merveilleux !


Bon, mais ça ne fait toujours pas de postback, le bouton a toujours la même allure :



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 J' ai donc remplacé par :





 


btnDel.OnClientClick &= "return confirm('Voulez-vous vraiment supprimer cet enregistrement?');"
ce qui donne:





return confirm('Voulez-vous vraiment supprimer cet enregistrement ?');javascript:__doPostBack('MonGridView','Delete$5')"</gras> language="javascript" />

Pourquoi ça ne marche pas?!  ?
Commenter la réponse de SuperBouly
cs_Nurgle 1648 Messages postés samedi 6 novembre 2004Date d'inscription 28 avril 2011 Dernière intervention - 18 oct. 2006 à 21:02
0
Merci
Logique,
Il y a un return dans tous les cas, avant le __doPostBack, donc celui-ci n'est jamais appelé ! (c'est mon "si ta fonction renvoie false, pas de postback" qui était pas clair du tout...)
Je dirais un truc du genre :
btnDel.OnClientClick = "if (!confirm('...')) { return; }";

Comme ça, si l'utilisateur fait OK, pas de return et le reste du javascript est exécuté.

A++

<hr width="100%" size="2" />Nurgle(Antoine)
Commenter la réponse de cs_Nurgle

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.