博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gridview列的汇总
阅读量:5758 次
发布时间:2019-06-18

本文共 2412 字,大约阅读时间需要 8 分钟。

Gridview 中我们会用到汇总的功能,因为前一段时间用到了,所以在此总结一下,作为以后的参考;
需要用到Gridview的
RowDataBound事件,
 RowDataBound是在数据源与gridview的行绑定完成之后才执行
RowDataBound方法,也就是说数据源每和gridview的行绑定完成之后都会触发此事件,首先是要把gridview的showfooter属性设置为true,以便我们利用footer行进行统计

 

 

 
  1. //统计
  2. Decimal mysum3 = 0;
  3. Decimal mysum4 = 0;
  4. Decimal mysum5 = 0;
  5. Decimal mysum6 = 0;
  6. Decimal mysum7 = 0;
  7. protected void gvResult_RowDataBound(object sender, GridViewRowEventArgs e)
  8. {}

 

 

因为数据是会带有小数点的,所以定义decimal类型的 全局变量,存放进行数据统计之和,然后触发RowDataBound事件
 
  1. if (e.Row.RowType == DataControlRowType.DataRow)  
  2.         {  
  3.             //统计  
  4.             if (!string.IsNullOrEmpty(e.Row.Cells[6].Text.ToString()) && e.Row.Cells[6].Text.ToString() != " ")  
  5.             {  
  6.                 Decimal sum1 = decimal.Parse(e.Row.Cells[6].Text.ToString());  
  7.                 mysum3mysum3 = mysum3+sum1;  
  8.             }  
  9.  
  10.             if (!string.IsNullOrEmpty(e.Row.Cells[7].Text.ToString()) && e.Row.Cells[7].Text.ToString() != " ")  
  11.             {  
  12.                 Decimal sum2 = decimal.Parse(e.Row.Cells[7].Text.ToString());  
  13.                 mysum4mysum4 = mysum4 + sum2;  
  14.             }  
  15.  
  16.             if (!string.IsNullOrEmpty(e.Row.Cells[8].Text.ToString()) && e.Row.Cells[8].Text.ToString() != " ")  
  17.             {  
  18.                 Decimal sum3 = decimal.Parse(e.Row.Cells[8].Text.ToString());  
  19.                 mysum5mysum5 = mysum5 + sum3;  
  20.             }  
  21.  
  22.             if (!string.IsNullOrEmpty(e.Row.Cells[9].Text.ToString()) && e.Row.Cells[9].Text!=" ")  
  23.             {  
  24.                 Decimal sum4 = decimal.Parse(e.Row.Cells[9].Text.ToString());  
  25.                 mysum6mysum6 = mysum6 + sum4;  
  26.             }  
  27.             if (!string.IsNullOrEmpty(e.Row.Cells[10].Text.ToString()) && e.Row.Cells[10].Text.ToString() != " ")  
  28.             {  
  29.                 Decimal sum5 = decimal.Parse(e.Row.Cells[10].Text.ToString());  
  30.                 mysum7mysum7 = mysum7 + sum5;  
  31.             }  
  32.             
  33.               
  34.         } 

当源数据行和gridview行绑定完成之后,需要判断行类型是不是数据行,如果是数据行就会进入以上代码,然后需要判断gridview行的列是不是为空,和不等于 然后把当前行的列值和之前已绑定的数据行的列值进行相加;

 

 
  1. if (e.Row.RowType == DataControlRowType.Footer)  
  2.        {  
  3.            e.Row.Cells[0].Text = "<span align='center' style='color:red'>合计:</span>";  
  4.            e.Row.Cells[6].Text ="<span align='center' style='color:red'>"+ mysum3.ToString()+"</span>";  
  5.            e.Row.Cells[7].Text = "<span align='center' style='color:red'>" + mysum4.ToString() + "</span>";  
  6.            e.Row.Cells[8].Text = "<span align='center' style='color:red'>" + mysum5.ToString() + "</span>";  
  7.            e.Row.Cells[9].Text = "<span align='center' style='color:red'>" + mysum6.ToString() + "</span>";  
  8.            e.Row.Cells[10].Text = "<span align='center' style='color:red'>" + mysum7.ToString() + "</span>";  
  9.        } 

这里也是对绑定行进行判断,如果行类型是脚注行的话,进行脚注行的赋值操作,即把数据行的列之和赋值给脚注行的某列,赋值的同时可以给脚注列添加一些样式,把字体改为红色,更醒目

效果如下:

本文转自shenzhoulong  51CTO博客,原文链接:http://blog.51cto.com/shenzhoulong/713249,如需转载请自行联系原作者

你可能感兴趣的文章
excel进行矩阵计算
查看>>
基于Android平台的动态生成控件和动态改变控件位置的方法
查看>>
linux 死机分析
查看>>
BOM
查看>>
LeetCode:Nim Game - 尼姆博弈
查看>>
iOS: Block的循环引用
查看>>
mysql实战02 | 日志系统:一条SQL更新语句是如何执行的?
查看>>
ECC椭圆曲线详解(有具体实例)
查看>>
关于WechatApp学习总结
查看>>
Linux常见命令(二)
查看>>
PyCharm切换解释器
查看>>
jmp far ptr s所对应的机器码
查看>>
css详解1
查看>>
【转载】Presentation at from Yoshua Bengio
查看>>
MySQL类型转换
查看>>
HashSet HashMap 源码阅读笔记
查看>>
变量声明提升1
查看>>
轻量级的Java 开发框架 Spring
查看>>
JS之路——浏览器window对象
查看>>
Chrome教程(二)使用ChromeDevTools命令菜单运行命令
查看>>