[Résolu][ASPX][C#] Connaitre le titre d'une colonne DataGrid

Connaitre le titre d'une colonne DataGrid [Résolu][ASPX][C#] - C#/.NET managed - Programmation

Marsh Posté le 23-03-2005 à 11:02:58    

Bonjour !
 
Excusez mes questions qui peuvent vous parraitre bete mais j'avoue avoir beaucoup de mal avec asp.net
 
J'ai un dataGrid et je voudrais connaitre le titre du header d'une colonne.
J'ai essayé dgTest.Columns[0].HeaderText
où dgTest est ma DataGrid et 0 ma 1ere colonne.
 
Le problème est qu'apres le DataBind dgTest.Columns.Count = 1 alors qu'il y a réellement 8 colonnes.
Je pense qu'il s'agit de ma colonne de checkboxes rajoutée dans le composant.
Je me suis dis que celà venait peut etre du fait que le DataBind ne crée pas des colonnes mais ... je ne sais pas ce qu'il crée.
 
J'ai tenté de voir avec dgTest.Items[0].Cells[0]. ... mais je n'ai pas trouvé le moyen d'avoir le titre de la colonne.
 
Auriez vous une solution pour moi ? (ca fait une demi journée que je galère sur ca et j'avoue en avoir un peu marre)
 
 
Merci beaucoup
Worldofdada


Message édité par Worldofdada le 23-03-2005 à 14:54:10
Reply

Marsh Posté le 23-03-2005 à 11:02:58   

Reply

Marsh Posté le 23-03-2005 à 12:49:57    

dgTest.Columns[0].HeaderText te renvoie quoi ?
Vois tu un texte dans ta colonne sur ta page web ?

Reply

Marsh Posté le 23-03-2005 à 13:41:19    

Il met renvoi rien du tout.
Ma colonne 0 est cencée etre une colonne de checkboxes.
 
Ce qui m'embette c'est que Columns[1] ... n'existent pas alors que j'ai 8 colonnes en tout.
--> dgTest.Columns.Count = 1
 
D'ailleurs, si je fais dgTest.Items[0].Cells.Count, c'est bien égal a 8.
 
Donc snif snif
 
Merci

Reply

Marsh Posté le 23-03-2005 à 13:56:48    

Rien du tout : une chaine vide ?
Un item n'est pas une column  
a mon avis tu confond ligne et colonne  
Et d'apres ce que tu dis tu as 8 lignes dans ta colonne
Et je te repose la question pluis clairement:  
Vois tu un texte dans le header de ta colonne sur ta page web ?

Reply

Marsh Posté le 23-03-2005 à 14:34:18    

dans ma page Web, j'ai 8 colonnes.
Et je vois bien le texte sur chaque colonne (sauf la 1ere puisque c'est une colonne remplie de checkboxes).
Pour savoir que dgTest.Columns[0].HeaderText = "", je passe par le debug et non par l'affichage dans la page Web.
 
Il me semblait pourtant que :
dgTest.Items[x] --> Correspond a la xième ligne
dgTest.Items[x].Cells[y] --> Correspond a la xième ligne, yième colonne
Alors je pense pas pouvoir récupérer le headerText à partir de là mais c'était simplement pour dire que là dedans, j'ai bien 8 cellules, donc 8 colonnes d'apres mon raisonnement.
 
Y'a t-il un truc que je n'ai pas compris ?
 
Merci beaucoup
Worldofdada

Reply

Marsh Posté le 23-03-2005 à 14:44:46    

Ok donc a priori c bon, tu as tout compris
Et la maniere de recuperer le titre du header de la colonne est bonne : dgTest.Columns[n-1].HeaderText
Pour récuperer le contenu de la cellule c comme tu le dis  
dgTest.Items[x-1].Cells[y-1]
Maintennat si tu recupere une chaine vide sur le header de la colone c qu'il n'est pas rempli, sachant que ça ne me parait pas anormal du tout vu que c a toi de le faire il me semble

Reply

Marsh Posté le 23-03-2005 à 14:47:25    

C'est pas le DataBind qui le fait ?
 
Et puis pourquoi je peux les voir dans ma page Web mais qu'ils ne sont pas accessibles a partir de mon code ?
 
Je suis en train d'essayer une technique qui consiste a récupérer le header dans la méthode DataItemCreated pour voir ...

Reply

Marsh Posté le 23-03-2005 à 14:50:03    

Ca depend a quel moment le binding est fait aussi  
Tu essaye de voir le contenu du header dans le meme code qui remplie le data grid ?


Message édité par gedeon le 23-03-2005 à 14:50:47
Reply

Marsh Posté le 23-03-2005 à 14:53:55    

C'est bon, ca marche a merveille ...
 
En récupérant le header dans l'évènement DataItemCreated, je peux lire à l'intérieur (quand je le souhaite) et il se comporte exactement comme une ligne : je peux naviguer a travers les Cells.
 
Merci beaucoup pour ton aide gedeon  :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed