开发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在页面生成的表格,注意这里为了方便,引用了JQuery
03.            var tr = $("#<%=GridView1.ClientID %>  tbody")[0].insertRow(-1);
04.            var td
05.            //按表格的列数在新插入的行里添加单元格
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.        });
posted on 2009-08-20 11:31  轻狂如我,奋华图强  阅读(666)  评论(0)    收藏  举报