Recuperer une valeur dans un datagrid

sorcier_sly Messages postés 53 Date d'inscription vendredi 26 mars 2004 Statut Membre Dernière intervention 27 février 2006 - 1 déc. 2005 à 15:43
sorcier_sly Messages postés 53 Date d'inscription vendredi 26 mars 2004 Statut Membre Dernière intervention 27 février 2006 - 1 déc. 2005 à 18:09
salut !!!

Voila, j'aimerais recuperer la valeur d'une colonne lorsque je selectionne une ligne de ma datagrid.

Je suis en train d'essayer avec un cast et en utilisant e.item.findcontrol mais ca me donne rien pour l'instant.

Quelqu'un aurait t il des precisions a m'apporter ?

Merci

4 réponses

tikrimi Messages postés 192 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 9 mars 2007 1
1 déc. 2005 à 16:10
Bonjour,

A mon avis, tu fais fausse route.
Il faut récuppérer le numéro de ta ligne selectionnée dans ton datagrid, et à partir de ça tu peux retrouver les données dans la DataTable que tu as Bindée avec ta grille.

Voici un bout de code :


Private
Sub dtgCategorie_ItemCommand(
ByVal source
As
Object,
ByVal e
As System.Web.UI.WebControls.DataGridCommandEventArgs)
Handles dtgCategorie.ItemCommand



If e.CommandName = "Select"
Then
Dim viCatID
As
Integer
dtgCategorie.EditItemIndex = -1
dtgCategorie.SelectedIndex = e.Item.ItemIndex
viCatID = dtgCategorie.DataKeys.Item(dtgCategorie.SelectedIndex)

... à partir de la tu as tout ce qu'il te faut : le SelectedIndex et même ta clé primaire

End
If



End
Sub

Par contre, si tu es en édition (et pas en selection), alors là oui tu es sur la bonne voie... là tu peux utiliser FindControl car le controle que tu recherche va être unique


Dim vsTitre
As
String
vsTitre =
CType(e.Item.FindControl("txtNewsNew"), TextBox).Text

TiK
http://www.objectif-services.com
http://gadgaill.blogspot.com
0
sorcier_sly Messages postés 53 Date d'inscription vendredi 26 mars 2004 Statut Membre Dernière intervention 27 février 2006
1 déc. 2005 à 16:37
Merci pour ton aide. J'ai mis le code que tu m'as donné à savoir :

If e.CommandName = "Select"
Then
Dim viCatID As
Integer
dtgCategorie.EditItemIndex = -1
dtgCategorie.SelectedIndex = e.Item.ItemIndex
viCatID = dtgCategorie.DataKeys.Item(dtgCategorie.SelectedIndex)

Simplement, j'ai une erreur qui s'affiche et je comprends pas trop pourquoi :

L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection. Nom du paramètre : index

???
0
tikrimi Messages postés 192 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 9 mars 2007 1
1 déc. 2005 à 17:08
As tu défini un DataKeyField dans ta grille ?
Et peux-tu nous donner la valeur de dtgCategorie.SelectedIndex stp ?

TiK
http://www.objectif-services.com
http://gadgaill.blogspot.com
0
sorcier_sly Messages postés 53 Date d'inscription vendredi 26 mars 2004 Statut Membre Dernière intervention 27 février 2006
1 déc. 2005 à 18:09
Ca y'est c'est bon ca marche ! Je n'avais pas defini de datakey !

Par contre j'ai un autre probleme. Dans ma datagrid, j'ai une imagebutton et je souhaiterais pouvoir modifier l'url dynamiquement lorsque l'on click sur une ligne de la datagrid.

Des idees ??
0
Rejoignez-nous