Un module de fonction de vote est indispensable pour visualiser les résultats du vote. L'utilisation d'une barre de progression pour afficher chaque résultat de vote peut fournir un effet clair. Voici ma méthode, n'hésitez pas à m'éclairer :
1 : Créez une image à utiliser comme barre de progression. Vous n'avez besoin que d'une très petite image, par exemple 20 px de haut et 1 px de large.
2 : Insérez un contrôle image dans la cellule où la barre de progression doit être affichée et définissez son imageUrl sur l'emplacement de l'image terminée.
3 : Utilisez un objet dataReader dr pour enregistrer le nombre de votes retirés pour chaque élément, utilisez une somme de variable de type int pour enregistrer le nombre total de votes retirés et définissez une variable de type double pour chaque élément afin d'enregistrer le résultat de la division. le nombre de votes individuels par (/) le nombre total de votes (décimal), puis définir une variable de type int pour enregistrer la longueur de la barre de progression à afficher éventuellement (utiliser la variable de type double précédente * la longueur de la cellule utilisé pour afficher la barre de progression, puis forcer la conversion en type int), attribuer la longueur Donnez simplement l'attribut width de l'image. Voici mon extrait de code, qui affiche quatre barres de progression :
SqlCommand cmd=new SqlCommand("select * from TvoteNum order by Vid",con);//Instruction SQL pour connaître les résultats du vote de chaque élément
SqlDataReader dr=cmd.ExecuteReader();
......
SqlCommand cmd1=new SqlCommand("select sum(Vnum) from TvoteNum",con1);//Instruction SQL pour connaître le nombre total de votes
int sum=Convert.ToInt32(cmd1.ExecuteScalar());
...
dr.Read();//Lire le premier enregistrement de l'objet datareader
this.Label1.Text=dr.GetInt32(1).ToString();//Nombre de votes pour le premier élément
double w1=(Convert.ToDouble(this.Label1.Text)/sum);//Le nombre de votes pour cet élément représente le pourcentage du nombre total de votes
int wid1=(int)(w1*310);//Convertir en pixels spécifiques, 310 est la longueur de la cellule à utiliser pour afficher la barre de progression
this.Image1.Width=wid1;//La largeur attribuée à l'image
dr.Read();//Lire le deuxième enregistrement
this.Label2.Text=dr.GetInt32(1).ToString();
double w2=(Convert.ToDouble(this.Label2.Text)/sum);
int wid2=(int)(w2*310);
this.Image2.Width=wid2;
dr.Read();//Lire le troisième enregistrement
this.Label3.Text=dr.GetInt32(1).ToString();
double w3=(Convert.ToDouble(this.Label3.Text)/sum);
int wid3=(int)(w3*310);
this.Image3.Width=wid3;
dr.Read();//Lire le quatrième enregistrement
this.Label4.Text=dr.GetInt32(1).ToString();
double w4=(Convert.ToDouble(this.Label4.Text)/sum);
int wid4=(int)(w4*310);
this.Image4.Width=wid4;
......