cuicui6669
Messages postés8Date d'inscriptionlundi 31 décembre 2007StatutMembreDernière intervention 1 février 2010
-
30 janv. 2008 à 16:30
cs_Cdelhaye
Messages postés1Date d'inscriptionmardi 20 mars 2007StatutMembreDernière intervention 6 juin 2008
-
6 juin 2008 à 23:27
bonjour,
j'ai fait un gridview que je rempli avec un oleDbDataReader par une requete "select * from ...." . Donc pas de souci, tout se remplit correctement.
Mon probleme, c'est que j'ai un champ "id" dans cette table que je ne veux pas afficher dans mon gridview.
Etant donné que je ne connai pas les colonnes et leur nombre, avez-vous une solution?
La seule colonne que je connai est la colonne "id", donc j'ai créé, en mode design, une boundColumn "id" dont le datafield corespond a "id". Donc la il ne devrait plus y avoir ce probleme car je n'est plus qu'a rendre invisible cette nouvelle colonne.
Le souci, comme je l'ai dit plus haut, c'est que je ne connai pas les colonnes, donc je suis obligé de passer a mon gridview une requete de type "select * from ..." et de mettre autogeneratecolumn à true pour avoir toutes les données.
Bien entendu le resultat est que je me retrouve avec à la fois la boundColumn "id" et avec la colonne "id" de la requete.
Alors que ce que je veux, c'est ne plus l'avoir cette colonne.
Avez-vous une solution?
cs_suzukMan
Messages postés58Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention13 septembre 20121 30 janv. 2008 à 17:02
Bonjour,
tu peux essayer de virer la colonne qui contien l'ID sa doit être normalement le deuxième colonne (1er c'est le champs caché)
aprés avoir chargé ton gridview tu fait:
cuicui6669
Messages postés8Date d'inscriptionlundi 31 décembre 2007StatutMembreDernière intervention 1 février 2010 31 janv. 2008 à 09:29
Bonjour,
Merci de me repondre.
Donc j'ai tenté ta solution, je l'ai testé avant et apres le gridView.databind(), et dans les deux cas je me retrouve avec une erreur "index must be non-negative or less then size of gridview". En gros, il me dit qu'il ne connait pas la colonne que j'essaye de supprimer. eh oui c'est bizarre... surtout quand on sait que malgré tout il me les a affiché jusqu'a maintenant.
Alors est-ce qu'il faut comprendre que le gridView ne connait que les colonnes enregistré à la mano? Celles qui sont affichées "automatiquement", il ne les connait pas?
cs_suzukMan
Messages postés58Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention13 septembre 20121 31 janv. 2008 à 10:23
Bonjour,
Exact il ne connait que se cqu'on met à la main ....
Comment faire alors?... J'ai vu que sur un gridview tu as les propriété DataKeyNames(Definit ou obtient tableau de string correspondant au champs clé de ton gridview) et aprés ta DataKey la c'est une collection.
Essaye peut être de trouver de l'info la dessus....
A+
cuicui6669
Messages postés8Date d'inscriptionlundi 31 décembre 2007StatutMembreDernière intervention 1 février 2010 31 janv. 2008 à 11:22
bonjour,
non je ne peux pas utiliser ta solution : pour passer mes colonnes en datakey, il faut que je connaisse mes colonnes, or ce n'est pas le cas...
Sinon, oui c'est un bon moyen de retrouver les noms de colonnes.
Bon de toute facon, je viens de me rendre compte que quand je passe en mode edition et update (en utilisant les evenements qui vont bien ;) ), je ne peux pas meme recuperer les valeurs de mes colonnes générées.
Du coup, ya pas vraiment d'interet, et en plus j'ai perdu beaucoup de temps pour faire marcher un gridview qui n'est pas adapté à mon cas.
Notez que j'ai aussi tenté le datagrid... c'est pas les memes problemes, mais c'est pas adapté non plus.
Donc je vais pouvoir utiliser la bonne vieille méthode du tableau html de mmggniniiidfµ**$£lghdg%¨££ . desesperant.... oiiiiiiiiiiinnnnn
N'ayant plus le temps (rendement oblige :) ), je change donc de solution mais je tacherai de me remettre dans ce cas des que l'occasion s'en presente.
Merci beaucoup d'avoir pris un peu de ton temps pour moi suzukman.
cordialement
Vous n’avez pas trouvé la réponse que vous recherchez ?
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 31 janv. 2008 à 23:15
Bonsoir,
tu dois pouvoir t'abonner à l'event RowDataBind du gridview pour ensuite mettre cette colonne invisible ou au pire mettre un style="display:none"; Sinon, pourquoi ne pas travailler sur ta source de données ? tu met ton jeux de données dans un DataTable et tu supprime la colonne dans le DataTable puis tu binds.
cuicui6669
Messages postés8Date d'inscriptionlundi 31 décembre 2007StatutMembreDernière intervention 1 février 2010 1 févr. 2008 à 10:06
bonjour,
merci jesusOnLine de bien vouloir m'aider. tres bonne suggestion, ca m'ouvre vers d'autres voies. Par contre celle du display:none, j'aime pas ... :d
En fait je trouve ca pas tres "réglo", c'est une magouille avec le css. ca peut m'aider dans le sens ou je fais aussi le CSS pour mon site, mais si je suis dans une boite ou je ne m'occupe que du coté dev et que je refile a mon designer une colonne a cacher, il va me dire sdg%%£fdg$$. lol
Mais ca peut etre une solution en effet.
cs_Cdelhaye
Messages postés1Date d'inscriptionmardi 20 mars 2007StatutMembreDernière intervention 6 juin 2008 6 juin 2008 à 23:27
Bonjour
Encore plus simple
Private
Sub GridView1_RowDataBound(
ByVal sender
As
Object,
ByVal e
As System.Web.UI.WebControls.GridViewRowEventArgs)
Handles GridView1.RowDataBound
e.Row.Cells(1).Visible =