一個投票功能模組少不了檢視投票結果,用進度條顯示各個投票結果可以起到一目瞭然的效果。以下是我的方法,請大家不吝賜教:
1:做一張圖片用於做進度條,只需要很小的一個圖片就可以了,如高20px,寬1px。
2:在要顯示進度條的單元格中插入image控件,其imageUrl設定爲已做好的圖片的位置。
3:用一個dataReader對象dr儲存取出的各項票數,用一個int型變量sum儲存取出的總票數,各項分別再定義一個double型變量用來儲存單項票數除以(/)總票數的結果(小數),再定義一個int型的變量來儲存最終要顯示的進度條的長度(用前面那個double型變量*用來顯示進度條的單元格的長度,然後強制轉換爲int型),將長度賦值給圖片的width屬性即可,以下爲我的代碼片段,顯示四個進度條:
SqlCommandcmd=newSqlCommand("select*fromTvoteNumorderbyVid",con);//查出各項的'投票結果的sql語句
SqlDataReaderdr=uteReader();
......
SqlCommandcmd1=newSqlCommand("selectsum(Vnum)fromTvoteNum",con1);//查出總票數的sql語句
intsum=t32(uteScalar());
......
();//讀datareader對象的第一條記錄
=nt32(1)ring();//第一項的票數
doublew1=(uble()/sum);//此項票數佔總票數的百分比
intwid1=(int)(w1*310);//轉化爲具體象素,310爲要用來顯示進度條的單元格長度
h=wid1;//賦值給圖片的寬度
();//讀第二條記錄
=nt32(1)ring();
doublew2=(uble()/sum);
intwid2=(int)(w2*310);
h=wid2;
();//讀第三條記錄
=nt32(1)ring();
doublew3=(uble()/sum);
intwid3=(int)(w3*310);
h=wid3;
();//讀第四條記錄
=nt32(1)ring();
doublew4=(uble()/sum);
intwid4=(int)(w4*310);
h=wid4;