Recuperer une valeur dans un datagrid

Signaler
Messages postés
53
Date d'inscription
vendredi 26 mars 2004
Statut
Membre
Dernière intervention
27 février 2006
-
Messages postés
53
Date d'inscription
vendredi 26 mars 2004
Statut
Membre
Dernière intervention
27 février 2006
-
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

Messages postés
192
Date d'inscription
dimanche 5 janvier 2003
Statut
Membre
Dernière intervention
9 mars 2007
1
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
Messages postés
53
Date d'inscription
vendredi 26 mars 2004
Statut
Membre
Dernière intervention
27 février 2006

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

???
Messages postés
192
Date d'inscription
dimanche 5 janvier 2003
Statut
Membre
Dernière intervention
9 mars 2007
1
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
Messages postés
53
Date d'inscription
vendredi 26 mars 2004
Statut
Membre
Dernière intervention
27 février 2006

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 ??