GridView - Evenement d'un bouton dans un TemplateField

Résolu
aifzaide Messages postés 41 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 2 juin 2010 - 29 juil. 2009 à 14:53
aifzaide Messages postés 41 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 2 juin 2010 - 30 juil. 2009 à 14:24
Bonjour,

J'explique mon problème, j'ai une GridView dans la quel j'ai défini un TemplateField dans lequel j'ai trois Button. Chaque bouton à une méthode différentes sur son évenement OnClick(object sender, EventArgs e)

J'aimerais dans chacune de ces méthodes pouvoir récuperer le DataKeyName de la ligne du bouton sur lequel je viens de cliquer. Quelqu'un pourrait-il éclairer ma lanterne?

Dans l'attente d'une réponse, en vous remerciant par avance.

2 réponses

ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
30 juil. 2009 à 01:18
Bonsoir,

Tu peux, par exemple, utiliser le rowcommand de ta gridview. Dans ce cas, tu peux récupérer l'id du button à l'aide de e.commandsource.id. Pour récupérer la datakey de ta table, tu peux la définir en commandargument.

Par exemple, sur un des button asp :

' />

Et puis en code (en vb), en remplissant un label selon le button et la ligne de la gridview :

Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs)
If e.CommandSource.id = "Button1" Then
Label1.Text = "Premier bouton" & ":" & e.CommandArgument.ToString
ElseIf e.CommandSource.id = "Button2" Then
Label1.Text = "Second bouton" & ":" & e.CommandArgument.ToString
End If
End Sub

GGtry
3
aifzaide Messages postés 41 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 2 juin 2010
30 juil. 2009 à 14:24
Merci de ta réponse GGtry,

Cependant je suis passer par une solution annexe qui ne me plait guère à vrai dire mais qui marche. Je m'explique:

Dans le RowDataBound(object sender, EventArgs e) j'ai mis dans chaque ToolTip de mes trois bouton, l'id de ma ligne et pour chaque bouton j'ai défini une méthode sur le OnClick(object sender, EventArgs e). Dans cette méthode je récupère l'Id à l'aide du "sender" ((Button)sender).ToolTip.

Cela fonctionne même si je ne trouve pas ca très propre, j'adapterai avec ta méthode dès que j'aurais un peu de temps.

Merci encore, à bientôt.
0
Rejoignez-nous