if (e.Row.RowIndex >= 0)
{
sum1 += Convert.ToInt32(e.Row.Cells[2].Text);
sum2 += Convert.ToInt32(e.Row.Cells[3].Text);
}
else
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[0].Text = "总分數为:";
e.Row.Cells[2].Text = s1.ToString();
e.Row.Cells[3].Text = s2.ToString();
}
這樣做的話,如果GridView分頁了就只能求每一頁的總和,但是我想求所的數據的和,譔怎麼做?先謝謝了
{
sum1 += Convert.ToInt32(e.Row.Cells[2].Text);
sum2 += Convert.ToInt32(e.Row.Cells[3].Text);
}
else
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[0].Text = "总分數为:";
e.Row.Cells[2].Text = s1.ToString();
e.Row.Cells[3].Text = s2.ToString();
}
這樣做的話,如果GridView分頁了就只能求每一頁的總和,但是我想求所的數據的和,譔怎麼做?先謝謝了
如果你的datasource是用的表,而表中的数据又没有分页的话,用表来求.
如果 一次都取出来 放在datatable里 就.rows.count呗
private int sum1 = 0 ;
private int sum2 = 0 ;
private DataTable mainDT = new DataTable() ;
在dataGrid的dataBind()里, 在获取到数据源之后,绑定之前加入
for( int i = mainDT.Rows.Count -1 ; i > -1 ; i -- )
{
sum1 += Convert.ToInt16( mainDT.Rows[i][2].ToString());
sum2 += Convert.ToInt16( mainDT.Rows[i][3].ToString());
}dataGrid的ItemDataBound事件中
加入你上面写的,后面的一部分代码即可。
唉,爆汗啊,竟然要这样做。
private int sum1 = 0 ;
private int sum2 = 0 ;
private DataTable mainDT = new DataTable() ;
在dataGrid的dataBind()里, 在获取到数据源之后,绑定之前加入
for( int i = mainDT.Rows.Count -1 ; i > -1 ; i -- )
{
sum1 += Convert.ToInt16( mainDT.Rows[i][2].ToString());
sum2 += Convert.ToInt16( mainDT.Rows[i][3].ToString());
}dataGrid的ItemDataBound事件中
加入你上面写的,后面的一部分代码即可。
________________________________________
這樣也不行啊
=========================
如果分页了,你还是想显示所有数据的总和,那人家看到后是不是会有一种错觉?
如:一共五条数据,某一个总和假如为50,每三条一分页的话,照你说的想法,是第一页和第二页的页脚都要显示50.如果要求是这样的话:
就在sql中写一个求所有总和的列,select *,(select count(*) from ? where ?) as [Sum] from ?? where ??在你绑定时,页脚里绑定[Sum]这个字段就行了,无论你怎么分页,都会显示所有的总和.