Bonjour,
je suis en train de créer une gridview. J'aimerai que quand l'utilisateur clique sur un bouton "supprimer", une fenetre de confirmation en javascript s'affiche.
Je sais le faire un datagrid mais sur les gridview je seche.
please help !
Bonjour,
je suis en train de créer une gridview. J'aimerai que quand l'utilisateur clique sur un bouton "supprimer", une fenetre de confirmation en javascript s'affiche.
Je sais le faire un datagrid mais sur les gridview je seche.
please help !
dans l'evenement ItemDataBound de ton gridview:
Il faut juste que tu mettes le bon index de cellules...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim lnkDelete As LinkButton = CType(e.Item.Cells(0).Controls(0), LinkButton) lnkDelete.Attributes.Add("onclick", "return confirm('Heureux dans la vie?');")![]()
en fait je n'ai pas de type Button mais plutot ButtonField
je suis en train de faire tout en controle serveur et donc c'est pas évident.
je suis d'accord avec crimsonPhantom. Pour ton problème de buttonfield. Plutôt que de mettre une colonne buttonfield met une colonne template et la tu pourras mettre ce que tu veux. En fait si tu mets une colonne buttonfield tu auras des bouton ASP.NET et donc tu auraus des postback de lancé à chaque fois alors que ca ne sert pas car tu veux afficher un confirm. Je crois qu'un liens serais mieux parce que sera plus fluide mais c'est une question de goût.Ensuite selon le bouton cliqué dans ta boite de message tu fais l'action voulu.
Tu peux aussi afficher directement du code HTML dans une cellule et donc tu te mets une image cliquable avec le code JS voulu. Par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part ligne.Cells(0).Text = "<a href=""#"" onclick=""Action('uneaction')""><img src=""image.gif"" border=""0""></a>"
crimsonPhantom j'ai essayé ta méthode (avec des button) !
mais ca marche pas. Il m'affcihe bien la petite fenetre de confirmation mais que je valide ou que j'annule la page ne se rafraichit pas.
C'est triste !
Comment as-tu fais le code de ton confirm ? Le confirm est en Javascript et donc ce n'est pas un composant ASP qui fait des postback de façon automatique. Si tu veux un refresh ou une redirection tu dois toi même le coder. Voici un exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 resultat = confirm("Comment ça va?") if (resultat != 0) { //faire un postback __doPostBack(); //une redirection location.href = "nouvellepage.aspx"; }
voila comment j'ai fais
si je regarde le code html ca donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 private void _listeQA_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) { try { Button b = (Button)e.Row.Controls[3].Controls[0] ; b.Attributes.Add("onclick", "javascript: return confirm('Heureux dans la vie?');"); } catch (Exception ex) { Page.Response.Write(ex.Message ); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <input type="button" value="Supprimer" onclick="javascript: return confirm('Heureux dans la vie?');javascript:__doPostBack('FAQControle$ctl01$itest','Supprimer$0')" />
bon j'ai trouvé comment faire ! c'est pas joli, joli !
les buttonField possède déjà du javascript c'est pourquoi je ne peux pas en rajouter comme je veux.
le truc c'est que lors du attributes.Add(...) je rajoute le javascript plus des "//" pour mettre en commentaire celui généré par le button lui meme.
j'aime pas cette solution mais ca marche. Si quelqu'un connait une solution plus propre, merci de la partager ! ;-)
Partager