Remplir un Grid View

Signaler
Messages postés
51
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
6 mars 2008
-
Messages postés
7
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
11 mai 2011
-
Bonjour
Alors voila pour tout vous expliquer mon but est de remplir mon GridViewsans liaison de données et je ne toruve pas du tout comment faire ... c fou !

Alors j'ai un DataSet qui me renvoie le résultat de ma requete :
exemple :

ID Compagnie PAYS_Destination VILLE_Destination

1 airline France Paris
1 airline France Nice
1 airline Espagne Barcelone
2 wizzair Allemagne Berlin
2 wizzair Allemagne Cork

Donc voila j'ai une compagnie aérienne qui peux aller dans plusieurs pays avec différentes villes par pays

Je voudrai afficher ca dans un GridView
Mais si je lie directement mon dataset à mon grid view je vais avoir plusieurs fois ma compagnie alors que je ne la veux qu'une fois

Je voudrais donc avoir un tableau du genre

| PARIS
France | ---------------------
Airline | | NICE
---------------------------------
Espagne | BARCELONE

-------------------------------------------

Wizzair

etc ....

Si je le fais dans le code behind ? Comment je dois faire ?

2ème question :
J'ai un nombre de vote par compagnie et je voudrai remplacer le numéro ( 1 ,2 ou 3 )quiest dans mon dataset par une image ( 1 étoile , 2 étoiles ou 3 étoiles )
Je dois donc tester la colonne pour dire quelle image j'affiche
Au secourssssssssssssss j'y arrive pas

Merci pour vos réponses

4 réponses

Messages postés
66
Date d'inscription
lundi 27 juin 2005
Statut
Membre
Dernière intervention
2 juin 2006
1
Je ne me souviens plus si l'on peut fusionner les cellules, je pense qu'elles doivent rester conformes par ligne... (les rendre visible=false ça on peut dans la meme boucle foreach)
Je ne peux pas te donner une solution ressemblant exactement à ce que tu as dessiné mais si tu veux déja eviter les doublons, crée une string et fais un check de ta colonne:

string compa ="";
string pays="";
foreach (GridViewRow r in GridView1.Rows)
{
if (r.Cells[1].Text == compa)
{
r.Cells[1].Text = "";
}
else
{
compa= r.Cells[1].Text;
}
if (r.Cells[2].Text == pays)
{
r.Cells[2].Text = "";
}
else
{
compa= r.Cells[2].Text;
}

}

Ca te fera un résultat du style:
Airline | France | PARIS
| | NICE
| Espagne | BARCELONE

C'est pas centré mais c'est sans doublon... (pas testé mais ca doit pas être loin, c'est juste un test sur le nom de la compagnie ou du pays de la case précédente, si c'est le meme, on efface la case, sinon on copie dans le string)
Messages postés
66
Date d'inscription
lundi 27 juin 2005
Statut
Membre
Dernière intervention
2 juin 2006
1
Salut,

Je verrais une solution qui se rapproche de:

Remplir ton gridview en bindant tes données et ensuite, juste avant l'affichage du gridview au load ou au remplissage (moi j'ai utilisé l'évènement prerender) tu passes tes lignes en revue et tu fais ce que tu veux... Pour ton problèmes d'images:

foreach (GridViewRow r in GridView1.Rows)
{
if (r.Cells[0].Text == "1") // optimisation possible par un trim pour éviter les "1 " ou un int.parse() pour vérification
{
r.Cells[0].Text = "";
Image i1 = new Image();
i1.ImageUrl = "lien...image1étoile.jpg";
r.Cells[0].Controls.Add(i1);
}
//autre test sur une autre case de la ligne à mettre ici si tu veux tester le "2" par exemple
}

Pas sur des synthaxes, j'ai fait de tête

Si tu insiste sans liaison de données, il faudra parcourir le dataset et ajouter dans le gridview par ligne ou par item ou par colonne... jamais fait...

Bon coding
Messages postés
51
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
6 mars 2008

Oki...
Ca c cool ... ca me permet de faire ce que j'ai envie sur les lignes du GridView

Parce que ajouter le gridview par ligne ou par item ou par colonne c l'horreur ( j'ai essayé mais jamais arrivé )

Ce qui reste à faire c vraiment le tableau au dessus que je voudrai
Messages postés
7
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
11 mai 2011

[^^mad3]