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);