Comment déclencher l'evenement d'un bouton placé dans une datagrid ?

wynxo Messages postés 18 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 17 octobre 2007 - 27 avril 2005 à 14:55
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 - 26 mai 2005 à 14:06
Hello tlm,

Je suis a la recherche d'un exemple dans lequel il y a un datagrid dans laquel chaque row contient au moins un bouton.

Car j'arrive sans problème a ajouter les boutons dans la datagrid mais impossible de déclencher l'évènement une fois que je clique sur le bouton.

Y'a t'il qlq ch de particulier a faire pcq je ne vois vraiment pas ce que je fais de travers...

Thx

10 réponses

cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
27 avril 2005 à 15:43
salut,

tu peux ajouter au
bouton1 CommandName="btnXXX1_click"
bouton2 CommandName="btnXXX2_click"
bouton3 CommandName="btnXXX3_click"

dans ton datagrid tu ajoutes
OnItemCommand="dg_ItemClick"

dans ton code behind tu ajoutes



Protected
Sub dg_ItemClick(
ByVal sender
As
Object,

ByVal e
As DataGridCommandEventArgs)

Select
Case e.CommandName.ToString()

Case "btnXXX_click" 'CommandName associée au bouton1
CmdBouton1(sender, e)

Case "btnXXX2_click" 'CommandName associée au bouton2
CmdBouton2(sender, e)
Case "btnXXX3_click" 'CommandName associée au bouton3
CmdBouton1(sender, e)<- le bouton 3 lance le même 'événement' que le bouton 1

Case
Else
End
Select
End
Sub





Protected Sub CmdBouton1(ByVal sender As Object,
ByVal e As DataGridCommandEventArgs)
'Action bouton1
End Sub

Protected Sub CmdBouton2(ByVal sender As Object,
ByVal e As DataGridCommandEventArgs)
'Action bouton2
End Sub

yopyop
0
wynxo Messages postés 18 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 17 octobre 2007
28 avril 2005 à 10:36
Merci pour la réponse mais j'ai tj le même ^roblème.

J'ai bien rajouté OnItemCommand="dg_ItemClick" dans le datagrid dans le code html

Et dans le code behin j'ai copier ce que tu m'as donné

Par contre je ne vois pas ce que je dois faire avec ça:
bouton1 CommandName="btnXXX1_click"
bouton2 CommandName="btnXXX2_click"
bouton3 CommandName="btnXXX3_click"

Et je ne sais pas comment faire pour ajouter les boutons a la grid de façon dynamqiue, pcq moi je le faisais via le mode design et je rajoutais des buton de type Edit, Select, Delete, etc... mais les evenements ne se déclenchent pas...

Thx a lot
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
28 avril 2005 à 14:13
re,

le datagrid:
DataKeyField= "Id"
AutoGenerateColumns="False"
AllowSorting="False"
OnItemCommand="dgInputs_ItemLinkClick">
<Columns>
.....
'Ici j'ajoute 2 boutons

....
</Columns>
<HEADERSTYLE HorizontalAlign="Center"></HEADERSTYLE><HEADERSTYLE HorizontalAlign="Center"></HEADERSTYLE>
Lorsque tu cliques sur un bouton, dgInputs_ItemLinkClick
est lancé (le OnItemCommand).
Pour savoir sur quel bouton tu as cliqué, il faut mettre dans le code behind:

'Gestion du OnItemCommand
Protected Sub dgInputs_ItemLinkClick(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
'Quelle est la commande exécutée ?
Select Case e.CommandName.ToString()
Case "dgInputs_Enhancement_Request"
dgInputs_Enhancement_Request(sender, e)
Case "dgInputs_View_Enhancement"
dgInputs_View_Enhancement(sender, e)
Case Else
End Select
End Sub

'Gestion des événements bouton
Protected Sub dgInputs_View_Enhancement(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
'code pour le bouton view (événement dgInputs_View_Enhancement)
End Sub


Protected Sub dgInputs_Enhancement_Request(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
'code pour le bouton request(événement dgInputs_Enhancement_Request)
End Sub

En gros, tu dis a ton datagrid qu'il y a des événements clicks:
OnItemCommand ="dgInputs_ItemLinkClick"

Pour chaque bouton, tu donne le nom de l'événement:
CommandName="dgInputs_View_Enhancement"

Dans le code behind, tu gère l'événement click
Protected Sub dgInputs_ItemLinkClick(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)

et la commande associée au bouton
Protected Sub dgInputs_Enhancement_Request(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
'code pour le bouton request(événement dgInputs_Enhancement_Request)
End Sub

J'espère que c'est assez explicite...

yopyop
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
28 avril 2005 à 14:14
PS:

Tous mes noms d'événements commancent pas dgInputs car c'est le nom de mon datagrid.
Ce n'est pas obligatoire, mais c'est beaucoup plus clair.

yopyop
0

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

Posez votre question
wynxo Messages postés 18 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 17 octobre 2007
12 mai 2005 à 09:19
Hello,

Sorry pour le retard de ma réponse, mais j'ai du bosser sur un autre projet... et je reviens seulement maintenant sur ce problème de datagrid.

Déjà le code que tu m'as fillé est excellent, maintenant ça marche nickel, les évenements se déclanchent bien et tout et tout... MERCI

Seulement je ne sais pas comment faire pour identifier la ligne dans laquelle se trouve le bouton sur lequel j'ai cliqué???

Encore merci...
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
12 mai 2005 à 19:57
salut,


si ton datagrid est basé sur une base de données tu utilises
DataKeyField="Id"
et ensuite mondatagrid.Datakeys(e.item.ItemIndex) ou un truc du genre pour obtenir l'id de ta lgine.

Le numéro de ligne tu l'obtiens avec e.item.ItemIndex.

yopyop
0
hellfires Messages postés 10 Date d'inscription mardi 4 janvier 2005 Statut Membre Dernière intervention 13 mai 2006
26 mai 2005 à 09:54
Je vient de tomber sur ce post providentiel malheureusement je débute totalement en .NET et c sur mon projet de stage....
donc sil était possible de récup le code entier par mail ce serai sympa car les exmples que j'ai trouvé pour les bouton et mm la datagrid en elle même ne sont pas clairs pour moi....
Je comprend rien!!!!
HELP!!!

Mail : mordessa@hotmail.com

Bribri ne pense qu'une et une chose...
Programmer ou être buggé!!! MDR
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
26 mai 2005 à 12:57
Salut,

Tu trouveras un tutorial complet (en anglais) sur l'utilisation du datagrid à l'adresse suivante:

http://aspnet.4guysfromrolla.com/articles/040502-1.aspx

C'est certainement le plus complet et le plus clair que tu puisses trouver sur le net.

yopyop
0
hellfires Messages postés 10 Date d'inscription mardi 4 janvier 2005 Statut Membre Dernière intervention 13 mai 2006
26 mai 2005 à 13:35
Dsl mais le lien ke tu m'as donné m'amène a la pub d'un livre sur asp.net donc de ce fait j'en reste o mm point....

Bribri ne pense qu'une et une chose...
Programmer ou être buggé!!! MDR
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
26 mai 2005 à 14:06
euh... tu sais utiliser une souris ?
tu sais scroller avec ?

donc l'article commence après la pub et il est découpé en 17 parties (tu trouves les liens en haut de la page, après le 1er flash)

<LI>Read Part 2

<LI>Read Part 3

<LI>Read Part 4

<LI>Read Part 5

<LI>Read Part 6

<LI>Read Part 7

<LI>Read Part 8

<LI>Read Part 9

<LI>Read Part 10

<LI>Read Part 11

<LI>Read Part 12

<LI>Read Part 13

<LI>Read Part 14

<LI>Read Part 15

<LI>Read Part 16

<LI>Read Part 17

yopyop</LI>
0
Rejoignez-nous