GridView增加一个统计行的方法

在CMB项目中,为了实现股票统计功能,通过GridView展示数据时,需要添加一个统计行来显示持仓股票市值的总和。首先设置GridView的ShowFooter属性为True,然后在GridView1_RowDataBound事件中处理数据绑定。在DataRow类型时计算总和,在Footer类型时填充统计结果。这样可以避免每行数据后都显示空白列的问题,实现统计行的优雅展示。
摘要由CSDN通过智能技术生成

 CMB项目中要涉及到stock的统计功能,由于是采用了gridview来实现数据的显示,这里就碰到了一个问题,在需求分析里客户要求对所有的股票进行一个统计,如下图:

按此在新窗口打开图片

大家看在最下面的一行,只出现了一个数值,其它列都不存在数值,而这个数的功能主要是对上面这行"持仓股票市值进行一个总的统计",这是如何实现的呢?

首先,我们要把gridview里面的属性中ShowFooter="True",就是把gridview的页脚打开,这只是第一步。
第二步:在双击属性面板中的事件,让他自动生成一个GridView1_RowDataBound的事件,我们最终就是要在里面写几行简单的代码实现功能了.
第三步:在protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)加入代码了,由于我这里是做需求分析时,只要在页面里显示出效果就可以了,所以我的代码比较简单。但是如果你要加上统计功能的话,你就可以在里面自定义一些相关变量,或调用相关的方法就可以了,我这里只是一个框架了.

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
     {
        
         decimal totalstock=0;

         if (e.Row.RowType == DataControlRowType.DataRow)
         {
            // totalstock += Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "stockholdmarketprice"));

             // totalstock += DataBinder.Eval(e.Row.DataItem, "stockholdmarketprice");

            //在这里就可以实现总和的计算了

         }
         else if(e.Row.RowType == DataControlRowType.Footer)
         {
             e.Row.Cells[3].Text="持仓总市值";
             e.Row.Cells[3].HorizontalAlign = HorizontalAlign.Right;
             e.Row.Cells[4].Text = "HKD15,000,000";

         }

这里如果不使用这个事件的话,只在设计的aspx页面中设置<FooterTemplate>来实现的话,就会发现所得到的效果是在每行数据中都会多出一个空白列,如图:
按此在新窗口打开图片


在vs2005中提供的MSDN对GridView.RowDataBound 事件 的描述是这样的:

呈现 GridView 控件之前,该控件中的每一行必须绑定到数据源中的一条记录。将某个数据行(用 GridViewRow 对象表示)绑定到 GridView 控件中的数据以后,将引发 RowDataBound 事件。这使您可以提供一个这样的事件处理方法,即每次发生此事件时都执行一个自定义例程(如修改绑定到该行的数据的值)。

它也提供了一个example出来


程序代码:  

<% @ Page language = " C# " %>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值