Récupérer des valeurs dans un GridView [Résolu] [C# .net] - C#/.NET managed - Programmation
Marsh Posté le 26-07-2006 à 04:19:33
Si je me souviens bien, ça doit être de la manière suivante (du moins ça l'est pour un DataGrid) :
((ton_type_asp.net_object)ton_gridview.Items[indice_tableau].FindControl("ton_controle" )).propriete_a_checker;
Exemple :
Code :
|
Code :
|
Marsh Posté le 26-07-2006 à 09:46:01
Bonjour Benwoua,
Bin en fait, j'ai bien précisé que je n'ai pas de controls comme des textboxes, labels... donc je n'ai pas d'ID... donc je ne peux pas utiliser FindControl().
Mais ton code marche, bien sûr. Merci si vous avez une idée pour récupérer les textes dans des BoundFields
Marsh Posté le 27-07-2006 à 10:41:16
Tu peux utiliser le HeaderText pour retrouver ta colonne si tu veux... mais je crois que ça ne va pas te plaire.
Sérieusement : que veux-tu ?
Tu veux retrouver une colonne donnée. OK.
Elle est identifiée par quoi ?
- Par son numéro de colonne.
- Par le nom du control (sauf dans ton cas)
- Quoi d'autre ????
Comment tu veux retrouver ta colonne si tu n'as rien pour l'identifier ?
Je te conseille éventuellement :
string password = GrandeMagieDonneMoiLeMotDePasse(myGridView.Rows[i]);
mais c'est pas dispo avant C# 42.0
Marsh Posté le 27-07-2006 à 12:35:10
Je sais, je suis difficile, mais j'ai horreur du hardcode.
Bin en fait, ça ne me déplairait pas d'aller récupérer la colonne par le HeaderText parce que ce dernier se trouve dans un fichier Resource .resx, évidemment
Comment puis-je faire alors ?
Merci bien à toi
Marsh Posté le 27-07-2006 à 12:49:52
HeaderText c'est une propriété de ta DataColumn
Tu fais une boucle sur la collection de colonnes de ta DataTable, et quand tu cherches l'indice de celle qui contient la donnée que tu veux.
Une fois que tu as l'indice, tu vas chopper ta donnée dans le DataRow, comme tu faisais au début.
Ca bouffe un peu de ressources pask'il faut faire la boucle de recherche à chaque fois, mais pas énorme.
Marsh Posté le 27-07-2006 à 18:29:43
Ah oui, pas bête
Une dernière question :
Code :
|
Dans le code précédent, pour récupérer l'index de la colonne, j'utilise le compteur "index". Ca te semble la bonne méthode ?
Merci bcp pour ton aide en tt cas !!
Marsh Posté le 01-08-2006 à 13:52:38
Code :
|
Note : Comme DataGrid.Columns n'implémente pas IList (on se demande pourquoi), on est obligé de faire une boucle avec un foreach et un break pour sortir.
C'est hideux, mais bon... c'est pas moi qui ai codé le framework...
Marsh Posté le 25-07-2006 à 23:31:56
Bonjour à tous
J'ai un gridView qui contient des BoundField comme ceci :
Une fois le gridView affiché sur la page Web, je voudrais récupérer les valeurs de "pseudo" et "password", ligne par ligne.
Le DataSource du gridView n'est plus utilisable.
Ce que je pensais faire, c'est qqch comme cela :
Seulement, Cells[0] et Cells[1] sont codées en dur, et je ne veux pas.
N'y a t-il pas un moyen de récupérer le bon BoundField d'une autre façon ? (sans utiliser les ItemTemplate et faire des FindControl()).
Merci bien pour votre aide
Message édité par Roodie le 01-08-2006 à 14:26:48