前提:设置属性ShowFooter="True"
方法一:使用SQL查询统计出合计值,在绑定GridView时让其结果赋于一个DataTable(全局变量),然后在RowDataBound事件中 if (e.Row.RowType == DataControlRowType.Footer) { e.Row.Cells[0].Text = "合计"; e.Row.Cells[3].Text = dtSum.Rows[0][0].ToString(); e.Row.Cells[4].Text = dtSum.Rows[0][1].ToString(); e.Row.Cells[5].Text = dtSum.Rows[0][2].ToString(); e.Row.Cells[6].Text = dtSum.Rows[0][3].ToString(); e.Row.Cells[7].Text = dtSum.Rows[0][4].ToString(); e.Row.Cells[8].Text = dtSum.Rows[0][5].ToString(); e.Row.Cells[9].Text = dtSum.Rows[0][6].ToString(); e.Row.Cells[10].Text = dtSum.Rows[0][7].ToString(); e.Row.Cells[11].Text = dtSum.Rows[0][8].ToString(); }
其中dtSum是那个全局DataTable,在绑定GridView同时将SQL查询的结果赋给它;效果如下:
方法二、直接把对应列每一行的值相加(不做数据查询,在RowDataBound事件中运算) int mysum1 = 0 ; int mysum2 = 0 ; protected void GridList_RowDataBound( object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow ) { DataRowView myrows=(DataRowView)e.Row.DataItem; mysum1 +=Convert .ToInt32 (myrows[2].ToString ()); mysum2 += Convert.ToInt32(myrows[3].ToString()); } // 合计 if (e.Row.RowType == DataControlRowType.Footer) { e.Row.Cells[0].Text = "合计"; e.Row.Cells[1].Text = mysum1.ToString(); e.Row.Cells[2].Text = mysum2.ToString(); } }