liliemumue
Messages postés51Date d'inscriptionmardi 4 mars 2003StatutMembreDernière intervention 6 mars 2008
-
19 avril 2006 à 14:32
moez1919
Messages postés7Date d'inscriptionmercredi 7 avril 2010StatutMembreDernière intervention11 mai 2011
-
3 sept. 2010 à 14:44
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
gyzmo222
Messages postés66Date d'inscriptionlundi 27 juin 2005StatutMembreDernière intervention 2 juin 20061 20 avril 2006 à 12:17
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)
gyzmo222
Messages postés66Date d'inscriptionlundi 27 juin 2005StatutMembreDernière intervention 2 juin 20061 20 avril 2006 à 09:56
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...