如何在gridview最后一行具有合计功能,并且能计算某一列的数据总和

页面上有三列,要统计的列是第三列,并且计算第三列的数据总和.第三列里的数据格式都是00.00,比如11.11.首先我先设置ShowFooter="True".privat... 页面上有三列,要统计的列是第三列,并且计算第三列的数据总和.第三列里的数据格式都是00.00,比如11.11.

首先我先设置ShowFooter="True" .

private double sum = 0;//取指定列的数据和
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{

if (e.Row.RowIndex >= 0)
{
sum += Convert.ToDouble(e.Row.Cells[2].Text);
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[1].Text = "合计:";
e.Row.Cells[2].Text = sum.ToString();

}
}
代码是以上代码,但是运行后提示"输入字符串的格式不正确。",问题是出在"sum += Convert.ToDouble(e.Row.Cells[2].Text);
"这句上.
展开
 我来答
avenger19
2008-07-08 · TA获得超过1298个赞
知道小有建树答主
回答量:972
采纳率:0%
帮助的人:1049万
展开全部
给你个建议,你这样做风险比较大,你可以在数据表里做点处理,而不是在GridView上做。
例如查询的时候先查询数据,然后再查询合计(用sum函数),然后把两个结果集union一下,当作查询结果集输出。这是一种方法,比较推荐
另外一种可以在得到DataTable之后遍历每一行,把合计的数算出来,再给DataTable加一行新的,然后绑在GridView上就可以了。用不着再Footer上显示,而且Footer有的时候可能还有其他的用处。

你这个错误报的是数据类型转换出错,字符串无法转换成double,这些都是不可预知因素了
大器晚成0927
推荐于2018-03-20 · 超过12用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:0
展开全部
if (isFirstBind)
{
for (int i = 0; i < table.Rows.Count; i++)
{
mysum1 += Convert.ToInt32(table.Rows[i][3].ToString());
mysum2 += Convert.ToInt32(table.Rows[i][4].ToString());
}
isFirstBind = false;
}
// 合计
if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[1].Text = "合计";
e.Row.Cells[9].Text = mysum1.ToString();
e.Row.Cells[10].Text = mysum2.ToString();
}
这样OK了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nhxy82
2008-07-08 · TA获得超过124个赞
知道答主
回答量:237
采纳率:0%
帮助的人:94.7万
展开全部
是的不能那么转化,如果是字符串,或者空,你转化要报错
你要
定义个double类型的a 并且给默认值 0
double.TryParse("要转化的值",out a)
sum+= a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
412858310
2008-07-08 · 超过41用户采纳过TA的回答
知道答主
回答量:97
采纳率:0%
帮助的人:0
展开全部
那显然你e.Row.Cells[2].Text里面的东西不是double 看看是不是索引错了 应该是1 ??

或者你e.Row.Cells[2].Text里面是空的 你要加判断啊 至少要有Try把转换包起来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友96eea501b
2008-07-22 · 超过26用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:93.9万
展开全部
在原数据上做,比较容易。
处理好了,再和GridView绑定。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式