Gridview求值问题

liuping234232783 2009-02-26 09:08:51
假如我GridView中一列数据如下
26
32
0
0
100
我现在要求平均数,但为0的不能算,代码该怎么写!! 谢谢
...全文
87 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2009-02-26
  • 打赏
  • 举报
回复
private double sum = 0;
private double p= 0;

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{

if (e.Row.RowIndex >= 0)
{
if(int.doubleParse(e.Row.Cells[6].Text,p))
sum += p
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[5].Text = "总薪水为:";
e.Row.Cells[6].Text = sum.ToString();

}
}
}
amandag 2009-02-26
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20090226/11/2e20503c-f3a1-48d7-a6ef-da6bcc1358cd.html

已回复
cwmwss 2009-02-26
  • 打赏
  • 举报
回复
不知道數據源是否是datatable,
table1.Compute("avg(columnname)","columnname!=0");
liuping234232783 2009-02-26
  • 打赏
  • 举报
回复
double nCount = 0; //记录非零数
double nTotal = 0;//记录总和
for (int i = 0; i < GridView1.Rows.Count; i++)
{
//e.Row.Cells[15].Text = ((double)(sum5 / GridView1.Rows.Count)).ToString("f");
//e.Row.Cells[15].ForeColor = System.Drawing.Color.Red;

//e.Row.Cells[16].Text = ((double)(sum6 / GridView1.Rows.Count)).ToString("f");
//e.Row.Cells[16].ForeColor = System.Drawing.Color.Red;

if (e.Row.Cells[15].Text =="0.0")
{
continue;
nTotal += sum5;
nCount++;
}
e.Row.Cells[15].Text = ((double)(nTotal / nCount)).ToString();

}

表格里显示"非数字"文字?
liuping234232783 2009-02-26
  • 打赏
  • 举报
回复
if (e.Row.RowIndex >= 0)
{
sum5 += Convert.ToDouble(e.Row.Cells[15].Text);

sum6 += Convert.ToDouble(e.Row.Cells[16].Text);
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[0].Text = "合计:";

e.Row.Cells[15].Text = ((double)(sum5 / GridView1.Rows.Count)).ToString("f");
e.Row.Cells[15].ForeColor = System.Drawing.Color.Red;

e.Row.Cells[16].Text = ((double)(sum6 / GridView1.Rows.Count)).ToString("f");
e.Row.Cells[16].ForeColor = System.Drawing.Color.Red;

}
这是代码,该怎么该.谢谢
namhyuk 2009-02-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liuyeedeee 的回复:]
有两种办法:
第一:再绑定后做。遍历GridViw中要求和的列,累加即可。
第二:在绑定时做,每绑定一行,将该列的值累加即可。
[/Quote]
同意,不过如果GridView分页的情况下就不能用这种方法了。
liu329175905 2009-02-26
  • 打赏
  • 举报
回复
有个笨方法就是用 document.getElementById(gridview的名字).rows取得行集合
document.getElementById(gridview的名字).rows[1].cells;第一行是取得列的集合
你用循环 计算比较咯
OenAuth.Net 2009-02-26
  • 打赏
  • 举报
回复
统计的你的GridView里面总共的记录数,把为0的去掉。

int nCount=0; //记录非零数
int nTotal = 0;//记录总和
for(int i=0;i<GridView的记录数; i++)
{
if(值 == 0)
continue;
nTotal+=值;
nCount++;
}

结果=nTotal/nCount;
wenyegood 2009-02-26
  • 打赏
  • 举报
回复
在DataTable中就可以求直接:
table1.Compute("sum(columnname)","")/table1.Rows.Count;
liuyeedeee 2009-02-26
  • 打赏
  • 举报
回复
有两种办法:
第一:再绑定后做。遍历GridViw中要求和的列,累加即可。
第二:在绑定时做,每绑定一行,将该列的值累加即可。
liuping234232783 2009-02-26
  • 打赏
  • 举报
回复
也就是26+32+100除以3 该怎么写

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧