开发WEB项目的时候,通常GridView绑定数据源为实体集合,每一项都是一条单独的记录。如:
| 序号 | 时间 | 新闻标题 | 查看人数 |
| 1 | 2009-7-20 | 测试新闻1 | 200 |
| 2 | 2009-7-21 | 测试新闻1 | 100 |
表中表示的是我们发布的一条新闻,在20号和21号被人查看的次数。
我们的实体包含的数据有:日期、新闻标题、查看人数。而下面,我想添加一行汇总,如下表:
| 序号 | 时间 | 新闻标题 | 查看人数 |
| 1 | 2009-7-20 | 测试新闻1 | 200 |
| 2 | 2009-7-21 | 测试新闻1 | 100 |
| 汇总 |
|
| 300 |
应该怎么办呢?
如果说给实体集添加一个实体(存储"汇总"和查看人数的合计),那么会出现数据类型的问题,比如序号本来是数字类型,这里确要加字符串,这当然是不行的。
更有情况GridView里直接绑定的是DataTable,我们就根本没法再添加数据进去了。所有最好的方法应该还是用JavaScritp来实现。
下面是我的例子。
01.$(document).ready(function() {02. //在表的尾部添加一行,$("#<%=GridView1.ClientID %> tbody")表示GridView1在页面生成的表格,注意这里为了方便,引用了JQuery03. var tr = $("#<%=GridView1.ClientID %> tbody")[0].insertRow(-1);04. var td05. //按表格的列数在新插入的行里添加单元格06. for (var i = 0; i < $("#<%=GridView1.ClientID %> tbody th").length; i++) {07. //添加单元格08. td = tr.insertCell(-1);09. //在添加的单元格里插入空格10. td.innerHTML = " ";11. }12. 13. var sumAmount = 0;14. //开始统计15. //循环GridView1的每一行16. $("#<%=GridView1.ClientID %> tr").each(function() {17. //该行的第N个单元格(N表示我们要统计的列)18. td = $(this).find("td").eq(3);19. //累加访问人数20. sumAmount += Number(td.text());21. }22. });23. //汇总出来了24. td.text("金额合计:" + sumAmount);25. });

浙公网安备 33010602011771号