asp.net  C# datagrid 最后一行增加总计?
具体代码怎么写?

解决方案 »

  1.   


    确实可以写在select语句中,只是想问下怎么写?
      

  2.   

    前提:设置属性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();
            }
        }