今天做一个测评系统,需要对score(总分)字段进行统计,以计算整个gridview的平均分,遇到了不少的困难!
去CSDN求助,最后终于搞定!
过程记下,希望给像我这样的fresher有点帮助!(GridView并未添加任何模板)
首先我利用如下代码取得:
string abc = GridView1.Rows[GridView1.SelectedIndex].Cells[2].Text.ToString();
事实证明是错误的,结果没有任何显示,然后就求助,查找搜索!
终于在CSDN达人帮助下,有所斩获:
<%
int sum = 0;
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
GridViewRow row=this.GridView1.Rows[i];
sum=sum+Convert.ToInt32(row.Cells[21].Text.ToString());
}
Response.Write(sum.ToString());
% >
定义递增变量,其Max值为GridView的记录数,然后进行递增,在递增的过程中,取得特定列,就是21列(score)的值(注意类型的
转换),进行求和,最后OK了!
到此为止,已经实现取得某一字段的值,并且求和了!求平均值就不用多讲拉o(∩_∩)o...!
取得特定条件的记录的和!
某列的值求和已经实现 ,又出现了新的问题,因为测评的教师有5个,而票数11票,怎么取出每个人有几张票呢?
尝试了多次均未果,后来想到用遍历的方法,不知道是否是好方法o(∩_∩)o...哈哈
就是先取出不重复的教师,然后遍历gridview,查询属于某教师的选票,期间定义一个变量k,初始为0,碰到属于当前教师的票数
则++,这样可以计算平均票数!
程序如下:
Response.Write("<font color=#336699><br />");
Response.Write("本系统共收录测评记录");
Response.Write(GridView1.Rows.Count.ToString());
Response.Write("条;其中参加测评的教师有");
Response.Write(GridView2.Rows.Count.ToString());
Response.Write("位,每位老师的测评统计如下:(数据的关系,各项均取整数,例如:86.7,取值86;)<br /><br /><br />");
Response.Write("</font>");
//定义取和函数
Response.Write("<table width=500 align=center>");
Response.Write("<tr><td>教师姓名</td><td>测评总分</td><td>测评人次</td><td>平均分</td><td>测评评价</td></tr>");
//取得姓名数组
for (int j = 0; j < GridView2.Rows.Count; j++)
{
GridViewRow rowj = this.GridView2.Rows[j];
string jiaoshi = rowj.Cells[0].Text.ToString();
Response.Write("<tr>");
Response.Write("<td style=\"width:100px;height:20px;\">");
Response.Write(jiaoshi);
Response.Write("</td>");
//====================================================================
int sum = 0;
int k = 0;
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
GridViewRow rowi = this.GridView1.Rows[i];
string name = rowi.Cells[2].Text.ToString();
if (name == jiaoshi)
{
k++;
sum = sum + Convert.ToInt32(rowi.Cells[3].Text.ToString());
}
}
Response.Write("<td style=\"width:100px;height:20px;\">");
Response.Write(sum);
Response.Write("</td>");
Response.Write("<td style=\"width:100px;height:20px;\">");
Response.Write(k);
Response.Write("</td>");
Response.Write("<td style=\"width:100px;height:20px;\">");
if (k != 0) //判断是否参加测评,否则为0,k作为除数不能为0;
{
Response.Write(sum / k);
}
else
{
Response.Write("0");
}
Response.Write("</td>");
string pingjia;
if (sum / k >= 95) { pingjia = "优秀"; }
else if (sum / k >= 85) { pingjia = "良好"; }
else if (sum / k >= 75) { pingjia = "中等"; }
else if (sum / k >= 65) { pingjia = "及格"; }
else { pingjia = "不及格"; }
Response.Write("</td>");
Response.Write("<td style=\"width:100px;height:20px;\">");
Response.Write(pingjia);
Response.Write("</td>");
Response.Write("</tr>");
}
Response.Write("</table>");
一天就做了这么多事情,还有一项限制IP地址单位时间访问次数没有搞定,期待明天会有收获!
Just A Fresher!
If You Need this Article, Please Put My Signature Aside!
RedAnt NetWork http://leoburn.cnblogs.com
If You Need this Article, Please Put My Signature Aside!
RedAnt NetWork http://leoburn.cnblogs.com
浙公网安备 33010602011771号