1.首先设置ShowFooter="True"

2.在RowDataBound事件中 ,添加如下代码,在这个事件中进行汇总计算的好处是可以根据绑定的数据及时的更新汇总信息,这里有一点要注意的是绑定前要判断RowType,这点很重要,我这里是用的dataTable作为数据源,汇总的时间也是用dataTable的comput方法,后面会对这个方法做介绍,代码

protected void datacar_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            //设置页脚、根据行的类型
            if (e.Row.RowType == DataControlRowType.Footer)
            {
                DataTable dt = (DataTable)Session["car"];
                //计算总金额,注意第二个参数也可以设置成“total=total”
                object o=dt.Compute("sum(total)","");
                e.Row.Cells[0].Text = "汇总:"+string.Format("{0:C}",o);
                 Button btn1=new Button();
                btn1.Text="结算";
                e.Row.Cells[1].Controls.Add(btn1);
            }
        }

dataTale的comput方法的一些介绍

DataTable.Compute 方法
计算用来传递筛选条件的当前行上的给定表达式。

C#
public Object Compute (
    string expression,
    string filter
)

参数
expression
要计算的表达式。

filter
要限制在表达式中进行计算的行的筛选器。

返回值
Object,设置为计算结果。
备注

expression 参数需要聚合函数。例如,以下是合法表达式:

Count(Quantity)

但是以下表达式不合法:

Sum (Quantity * UnitPrice)

如果必须针对两列或多列执行操作,则应该创建 DataColumn,并将它的 Expression 属性设置为适当的表达式,然后针对结果列使用聚合表达式。在这种情况下,假定有一个名为“total”的 DataColumn,并且 Expression 属性设置为:

"Quantity * UnitPrice"

Compute 方法的表达式参数将为:

Sum(total)


 

 

posted on 2010-01-27 17:22  新小白龙  阅读(1267)  评论(0编辑  收藏  举报