您现在的位置: 365建站网 > 365文章 > 利用jquery 实现动态多表头Grid

利用jquery 实现动态多表头Grid

文章来源:365jz.com     点击数:872    更新时间:2009-09-17 10:19   参与评论

由于在GridView控件里面实现过一次,所以用js来做也是比较容易的.基本的原来就是分析表头根据字符串进行拆分 比如我这里用的特殊符号是"_"

我在GridView里面实现的是可以无限层的,js的实现我直接写死了层数,不过很容易修改,写个递归就ok啦.

数据源为:

</>code

  1. "[{\"用电单位\":\"郭楼三陈\",\"2009-06-01_度数\":\"\",\"2009-06-01_单价\":\"\",\"2009-06-01_金额\":
  2. \"\",\"2009-07-01_度数\":\"242.00\",\"2009-07-01_单价\":\"12.00\",\"2009-07-01_金额\":\"2904.0000\"},
  3. {\"用电单位\":\"狼坡\",\"2009-06-01_度数\":\"190.00\",\"2009-06-01_单价\":\"12.00\",
  4. \"2009-06-01_金额\":\"2280.0000\",\"2009-07-01_度数\":\"23.00\",\"2009-07-01_单价\":\"21.00\",
  5. \"2009-07-01_金额\":\"483.0000\"}];"

可以看到我的表头类似是"2009-06-01_度数"这样的结构,然后通过js进行处理.

</>code

  1. 1: <script>

</>code

  1. 2: $(window).ready(function() {$.getJSON("/Power/PowerStatList/",{ id: "0", sid: "1;2;3", rid: Math.round(Math.random() * 10) },

</>code

  1. 3: function(json) {

</>code

  1. 4: jsonval = eval(json);

</>code

  1. 5: for (var j = 0; j < jsonval.length; j++) {

</>code

  1. 6: $("#GridView1 tr:last").after("<tr id='" + j + "'></tr>");

</>code

  1. 7: var m = 0;

</>code

  1. 8: for (var i in jsonval[j]) {

</>code

  1. 9: if (j == 0) {

</>code

  1. 10: $("#tableHeader").append("<td id='h" + m + "'>" + i + "</td>");

</>code

  1. 11: }

</>code

  1. 12: $("#GridView1 tr:last").append("<td>" + jsonval[j][i] + "</td>");

</>code

  1. 13: m++;

</>code

  1. 14: }

</>code

  1. 15: }

</>code

  1. 16: $("#GridView1 tr:first").before("<tr id='newHeader'></tr>");

</>code

  1. 17: var temp = "";

</>code

  1. 18: var col = 1;

</>code

  1. 19: var trs = {}

</>code

  1. 20: $.each($("#tableHeader td"), function(i, td) {

</>code

  1. 21:  

</>code

  1. 22: if ($(td).text().indexOf('_') > 0) {

</>code

  1. 23: if (temp != "") {

</>code

  1. 24: if (temp != $(td).text().split('_')[0]) {

</>code

  1. 25: $("#GridView1 tr:first").append("<td colspan=" + col + ">" + temp + "</td>");

</>code

  1. 26: col = 1;

</>code

  1. 27: }

</>code

  1. 28: else {

</>code

  1. 29: col++;

</>code

  1. 30: }

</>code

  1. 31: }

</>code

  1. 32: temp = $(td).text().split('_')[0];

</>code

  1. 33: }

</>code

  1. 34: else {

</>code

  1. 35: $("#GridView1 tr:first").append("<td rowspan=2>" + $("#h" + i).text() + "</td>");

</>code

  1. 36: $("#h" + i).remove();

</>code

  1. 37: }

</>code

  1. 38: $(td).text($(td).text().split('_')[0]);

</>code

  1. 39: });

</>code

  1. 40: $("#GridView1 tr:first").append("<td colspan=" + col + ">" + temp + "</td>");

</>code

  1. 41:

</>code

  1. 42: });

</>code

  1. 43: });

</>code

  1. 44:

</>code

  1. 45: </script>

</>code

  1. 46:  

</>code

  1. 47: <table border=1 id="GridView1">

</>code

  1. 48: <tr id="tableHeader">

</>code

  1. 49:

</>code

  1. 50: </tr>

</>code

  1. 51:

</>code

  1. 52: </table>

效果:

image

加上样式就好看了 O(∩_∩)O哈哈~

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛

发表评论 (872人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
昵称:
最新评论
------分隔线----------------------------

快速入口

· 365软件
· 杰创官网
· 建站工具
· 网站大全

其它栏目

· 建站教程
· 365学习

业务咨询

· 技术支持
· 服务时间:9:00-18:00
365建站网二维码

Powered by 365建站网 RSS地图 HTML地图

copyright © 2013-2024 版权所有 鄂ICP备17013400号