日期:2014-05-19  浏览次数:20506 次

GridView两动态单元格数值相加后放到另一动态的单元格的问题 急
先看我的代码:
int   i=0;
GridView1.Rows[1].Cells[i   +   3].Text=GridView1.Rows[0].Cells[i   +   3].Text+GridView1.Rows[1].Cells[i   +   2].Text;
最后执行的结果:
如果GridView1.Rows[0].Cells[i   +   3]=250.50
GridView1.Rows[1].Cells[i   +   2].Text=2
那么GridView1.Rows[1].Cells[i   +   3]=250.52
问题是我希望得到的结果是:252.50请问应该怎么修改它呢,而当某一个单元格是空时(即没有任何数据)又怎么处理呢,谢谢!!!

------解决方案--------------------
GridView1.Rows[1].Cells[i + 3].Text=Convert.ToDecimal(GridView1.Rows[0].Cells[i + 3].Text)+Convert.ToDecimal(GridView1.Rows[1].Cells[i + 2].Text);

------解决方案--------------------
可在数据库中就计算好。 或者给数据源加个表达示列。 如 dt.Columns.Add( "SubTotal ",typeof(decimal), "字段1+字段2 ");
------解决方案--------------------
如果没有数据的时候判断一下,赋值为0

绑定数据的事件中:

double a=0;
double b=0;
if(GridView1.Rows[0].Cells[i + 3].Text!=null&&GridView1.Rows[0].Cells[i + 3].Text.CompareTo( " ")!=0)
{
a=Convert.ToDecimal(GridView1.Rows[0].Cells[i + 3].Text);
}
if(GridView1.Rows[0].Cells[i + 2].Text!=null&&GridView1.Rows[0].Cells[i + 2].Text.CompareTo( " ")!=0)
{
b=Convert.ToDecimal(GridView1.Rows[0].Cells[i + 2].Text);
}

GridView1.Rows[1].Cells[i + 3].Text = (a+b).ToString();
------解决方案--------------------
无法将类型“decimal”隐式转换为“double”。 =====> 你是用的楼上谁的代码? 转换一下就可以了
------解决方案--------------------
GridView1.Rows[1].Cells[i + 3].Text=Convert.ToDouble(GridView1.Rows[0].Cells[i + 3].Text)+Convert.ToDouble(GridView1.Rows[1].Cells[i + 2].Text);