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

Signaler
Messages postés
18
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
17 octobre 2007
-
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
-
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

Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
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
Messages postés
18
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
17 octobre 2007

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
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
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
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
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
Messages postés
18
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
17 octobre 2007

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...
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
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
Messages postés
10
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
13 mai 2006

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
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
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
Messages postés
10
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
13 mai 2006

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
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
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>