下面的程序是我把gridview某一列的值相加的程序,但是相加的结果总是少最后一行的列值加不上,请高手看看程序是否有误?谢谢
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
int num =0; //个数
Decimal sum=0; //价格
if (e.Row.RowType == DataControlRowType.DataRow)// 当时底部时
{ for (int i = 0; i < this.GridView1.Rows.Count; i++) //循环gridview的行
{
// num += Convert.ToInt32(GridView1.Rows[i].Cells[4].Text); //把个数相加
sum += Convert.ToDecimal(GridView1.Rows[i].Cells[5].Text); //把价格相加 }
//Response.Write(sum);
Label3.Text = "工资总和" + sum.ToString(); } }
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
int num =0; //个数
Decimal sum=0; //价格
if (e.Row.RowType == DataControlRowType.DataRow)// 当时底部时
{ for (int i = 0; i < this.GridView1.Rows.Count; i++) //循环gridview的行
{
// num += Convert.ToInt32(GridView1.Rows[i].Cells[4].Text); //把个数相加
sum += Convert.ToDecimal(GridView1.Rows[i].Cells[5].Text); //把价格相加 }
//Response.Write(sum);
Label3.Text = "工资总和" + sum.ToString(); } }
解决方案 »
- 在Gridview中更新图片问题
- 求一段生成treeview的代码
- 新手初学.net寻求帮助意见
- 相互嵌套的repeater,被嵌套的怎么引用外边的repeater的列?
- DataBinder问题
- 组A的imagebutton,程序只会验证组A的textbox页不去管组B的textbox。如何实现?
- 急:同一个链接字符串在VB.NET中链接成功,但在ASP.NET中登录失败
- 在往数据库中写数据时出现错误:指定的参数已超出有效值的范围。参数名: Value is not valid for OracleType: 0
- datagrid分页的问题,请大家能帮忙看一下,谢谢。
- 我用asp.net 想把数据存入数据库中?请帮忙..
- 学习三层结构,出现激发了未处理的事件“RowEditing”的问题。
- 怎样在detailview换页时获得datakey的值?
你要算的值到底是当前页的和还是所有数据的和?你最好是遍历你的DataTable,把里边的值加出来.
{
sum += Convert.ToDecimal(e.Row.Cells[5].Text); //把价格相加 }
即可。最后在GridView_DataBound事件里(注意:不是RowDataBound)
Label3.Text = "工资总和" + sum.ToString();
正解,应该在GridView_DataBound中做事件
用foreach(GridViewRow row in GridView1.Rows)
{
sum += int.Parse(row.Cells[5].text);
}这样得出的应该就是你需要的答案
foreach(GridViewRow row in GridView1.Rows)
{
sum += Convert.ToDecimal(row.Cells[5].Text);
}
建议在数据源中处理
如数据源为DataTable可用dt.Compute()来计算,大概写法如下 dt.Compute("Sum(列名)")