Grand besoin d'aide pour une datagrid

cs_jordan2345 Messages postés 9 Date d'inscription mercredi 7 mai 2003 Statut Membre Dernière intervention 13 janvier 2004 - 6 janv. 2004 à 12:00
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 7 janv. 2004 à 15:50
ben

j'ai un gros soucis et ca fait deux jours que je me retournes le cerveau!

Celui qui me trouve ça me sauves la vie!!!

C'est long mais j'ai préféré bien expliquer. désolé.

J'ai une datagrid que j'initialise avec une procédure stockée de sql server. J'en ai déja fait (des datagrid) mais a chaque fois je savais le nombre de colonnes retournées par la procedure, je pouvais donc manier la datagrid comme je voulais avec property builder.
Mais ici, le nombre de colonnes est varaibles, donc je ne peux utitliser property builder. Donc je précise juste le datasource de ma datagrid puis je fais un databind. Ca marche sauf que j'ai toutes les colonnes de ma proc. Or il y en a une que je veux pas. Il existe plusieurs solutions comme removeAt ou mettre visible de la colonne a false sauf que je n'arrive pas à les utitliser car pour le compilateur la datagrid n'existe jamais. Pourtant au final elle s'affiche bien mais dans le code c# j'ai tout fait tourner au debug et la DG n'existe jamais. Je ne peux donc placer ma ligne myDatagrid.Columns.RemoveAt(1) a aucun moment.

Merci beaucoup d'avance les programmeurs de l'extrême, je comptes énormément sur vous, car msdn et google depuis 2 jours y en a marre...

5 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
6 janv. 2004 à 18:46
je pense qu'il doit effectivement possibilité de supprimer certaines colonnes, mais le mieux a mon avis est de supprimer la colonne au niveau du dataset, voir meme directement dans la requete SQL ou faire deux requete SQL mais ca devendrais plus complexe, je pense que je chercherais plus dans cette solution: supprimer les données avant le datagrid
0
cs_jordan2345 Messages postés 9 Date d'inscription mercredi 7 mai 2003 Statut Membre Dernière intervention 13 janvier 2004
7 janv. 2004 à 11:37
ben

Déjà, je te remercie beaucoup d'avoir pris la peine de lire mon pb jusqu'au bout. Maintenant, j'avais pensé à ce que tu me proposes mais c'est impossible. Je t'explique:

ma procédure me renvoie plein de champ d'on un id que je doit mettre en datakeyfield dans mon datagrid. Par contre, je ne dois surtout pas l'afficher. Voila pourqoi je ne peux la supprimer avant et voila pourqoi je cherche tjs a la supprimer du datagrid.

Comme je l'ai dit précédemment, j'ai la synthaxe pour supprimer une colonne d'une datagrid mais impossible de la saisir à n'importe quel endroit du code (après le databinding, dans pageLoad...). Comme si elle n'existait pas. Et pourtant tout s'affiche parfaitement. Voila le mystère qui me retourne le cerveau depuis 3 jours...

Merci quand même. Bonne continuation
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
7 janv. 2004 à 13:17
J'ai essayé le removeat et chez moi non plus ca marche pas, si quelqu'un sait comment fonctionne le removeat d'un datagrid je suis preneur, par contre j'ai regardé ce qu'on pouvait faire et je suis tombé sur ca

DataGrid1.Columns.Item(0).Visible = False

C'est comme ca que j'aurais procédé intuitivement, ca marche mais attention, Le premier element correspond au 0 et non pas au 1 comme tu le laissais entendre
0
cs_jordan2345 Messages postés 9 Date d'inscription mercredi 7 mai 2003 Statut Membre Dernière intervention 13 janvier 2004
7 janv. 2004 à 13:57
ben

Je te remercie a nouveau. Mais ca ne marche toujours pas. Deja, chez moi il n'y a pas d'event Item pour une colonne d'un datagrid donc je ne peux effectuer
DataGrid1.Columns.Item(0)

Mais je vois ce que tu veux faire, moi la synthaxe correct pour cela c'est:
DataGrid1.Columns[1].Visible=false; (ma colonne a sup est la 2ème)

Mais ça j'avais déjà essayé aussi, mais cela revient toujours au même: pour lui il y a 0 colonnes et 0 lignes au moment où je tape cette ligne de code.

Mon problème est de trouver à quelle moment est crée le datagrid dans le csharp et donc à quelle moment on peut y accèder.

Pour tester j'avais mis des DataGrid1.Columns.count dans chaque methode de ma page (pageLoad, bouton display). Il est tjs à 0. Et pourtant elle s'affiche parfaitement. Le mystère continue...

Si ca peut t aider, je t explique ma page:

un combobox permettant de choisir une date et un bouton affich à coté qui permet d'afficher la datagrid correspondante.

l'initailisation de la dg et donc l'appel de la proc se fait donc dans l'évènement BtnAffich_Onclick

Merci encore, j'apprécie ton aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
7 janv. 2004 à 15:50
Moi j'ai fait le code que j'ai mis au dessus, et ca m'a enlevé la premiere colonne, par contre je travaille en vb c'est pour ca les difference de syntaxe, qd tu dis que tu n'as pas d'event item tu veux dire quoi par la que ca ne compile pas avec la syntaxe ou que tu n'as aucune colonne ?

que tu n'es aucune colonne et pourtant que ton datagrid s'ffiche bien, ca reste un mystere, pour regarder si il est fait tu peux mettre des trace.warn("...") et aussi mettre mettre trace=true dans la page pour avoir des infos sur ce que le serveur te fait, mais je comprend pas du tt ce mystere, si tu n'arrives tj pas à comprendre, tu n'auras qu'a me passer ton code je le testerais des que j'ai le temps, t'as essayé de supprimer tt ce qui etait inutile pour faire cela, ou créer une autre page avec juste le minimum pour pouvoir voir si ca marche

bon courage
0
Rejoignez-nous