cs_cyclotor
Messages postés15Date d'inscriptionjeudi 24 août 2006StatutMembreDernière intervention 3 octobre 2006
-
28 sept. 2006 à 16:33
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 2010
-
30 sept. 2006 à 10:26
Salut à tous!
J'ai un petit problème avec un gridView! Dans mon gridView, j'ai dans une colonne de type template, un ensemble de plusieurs boutons. Le problème est le suivant:
Chaque bouton doit avoir une fonction différente. L'événement de click doit me permettre de récupérer mon DataKey. Mais lorsque j'utilise:
1) Le RowCommand Event, les seuls props que je peux récupérer sont: CommandName, CommandSource et CommandArgument, mais je ne peu pas récupéer mon DataKey.
2) Le SelectedIndexChanging la seule props que j'ai c'est newSelectedIndex qui me permet de récupérer mon DataKey, mais je ne peux pas faire de Switch sur le CommandArgument car la props n'existe par pour cet évenement.
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 28 sept. 2006 à 21:07
Bonsoir,
Il me semble que tu peux (et tu dois) utiliser tongridview.selectedItem.value qui est le datakey de la ligne courant, attention il faut rebinder ton gridview à chaque rechargement.
cs_cyclotor
Messages postés15Date d'inscriptionjeudi 24 août 2006StatutMembreDernière intervention 3 octobre 2006 29 sept. 2006 à 08:03
Yep,
Alors visiblement il n'y a pas de prop SelectedIndex pour une grid. Quand j'essai avec SelectedValue qui est sensé me retourné la DataKey correspondante pour la Row sélectionné (le tout lors de l'appel par l'événement GridViewCommand)...
int
i =
Convert.ToInt32(grdDJ.SelectedValue);
i contiendra bien mon id mais celui de la ligne que j'aurais sélectionnée avant la nouvelle... donc c'est comme s'il mettait la valeur après le bind...
Comment faut-il faire... pour faire le rebind ?
cs_cyclotor
Messages postés15Date d'inscriptionjeudi 24 août 2006StatutMembreDernière intervention 3 octobre 2006 29 sept. 2006 à 09:48
Yep,
Alors mon bind se fait correctement et j'ai mes données dans la grille, mais ce qui est bizarre c'est que lorsque je clique sur ma row, je dois finalement cliquer deux fois pour avoir le bon DataKey... c'est comme s'il y avait un clique de retard. Donc lors de mon premier click sur une row, mon id est à 0 lorsque je clique sur une deuxième row, j'obtient la valeur de la premère row sur laquelle j'ai cliqué...
Vous n’avez pas trouvé la réponse que vous recherchez ?
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 29 sept. 2006 à 10:09
Quand bind tu ton gridview ? tu t'es abonné à selectedindexchanging (en train de se changer donc t'auras pas la nouvelle valeure) ou sur SelectedIndexChanged (c'est finit il est changé)
en gros... c'est clair qu'après je vais faire un switch en fonction du commandArgument...
Le problème avec le selectedindexchanging c'est que je ne peux pas récupérer le commandArgument... car en fait j'aimerai utiliser 3 boutons qui appellent la même méthode liée à l'événement... je récupère facilement le row id mais pas le commandArgument à l'inverse du RowCommand ou la je peux récupérer le commandArgument, mais pas le row id...
Le bind se fait dans une méthode appelée dans le page load.
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 30 sept. 2006 à 10:26
Je ne vois pas vraiment quel est le problème, créer une page bidon avec un gridview et un datasource tout simple et essaye de le faire fonctionner puis ensuite regarde les différence avec ton code.