动态Web表格

这是我花1个小时写的东西,第一次发贴就不言语了,直接上代码: 

ContractedBlock.gif ExpandedBlockStart.gif Code
  1// 表格操作
  2// 作者:小点
  3// 时间:2008-10-07
  4
  5function Table()
  6ExpandedBlockStart.gifContractedBlock.gif{
  7 var _objTbl = null,_oTBody = null;
  8 var _n = null;
  9 var _r = null;
 10 var _c = null;
 11
 12 // 创建表格元素
 13 this.Create = function(n,r,c)
 14ExpandedSubBlockStart.gifContractedSubBlock.gif {
 15  _r = (null == r) ? 1 : r;
 16  _c = (null == c) ? 1 : c;
 17  _n = (null == n) ? "nTbl" : n;
 18
 19  _objTbl = document.createElement("TABLE");
 20  _oTBody = document.createElement("TBODY");  
 21  
 22  _objTbl.id = _n;
 23  _objTbl.style.border="1px solid blue"// 表格(table)样式
 24  
 25  for(i=0;i<_r;i++)
 26ExpandedSubBlockStart.gifContractedSubBlock.gif  {   
 27    this.CreateRow(i);
 28  }

 29  _objTbl.appendChild(_oTBody);
 30
 31  return _objTbl;
 32 }

 33 
 34 // 创建表格的行
 35 this.CreateRow = function(rownum)
 36ExpandedSubBlockStart.gifContractedSubBlock.gif {
 37   var n = _n + "_tr_" + rownum.toString();
 38  var objRow = document.createElement("TR");
 39  objRow.id = n;
 40  
 41  _oTBody.appendChild(objRow);
 42  
 43    for(j=0;j<_c;j++)
 44ExpandedSubBlockStart.gifContractedSubBlock.gif  {
 45    this.CreateCell(objRow,i,j);
 46  }

 47 }

 48 
 49 // 创建表格的列
 50 this.CreateCell = function(objRow,rownum,cellnum)
 51ExpandedSubBlockStart.gifContractedSubBlock.gif {
 52   var n = _n + "_tr_"+ rownum + "_td_" + cellnum.toString();
 53  var objCell = document.createElement("TD");
 54  
 55  objCell.id = n;
 56  objCell.title = n;
 57  objCell.innerText = _n + "=" + rownum + " , " + cellnum; // 设置单元格里的值
 58  objCell.style.border="1px solid gray";// 单元格(td)样式
 59  
 60  // 表格操作事件
 61  //objCell.onclick = function(){var obj = new Table(); obj.DeleteRow(_n,rownum);};
 62ExpandedSubBlockStart.gifContractedSubBlock.gif  objCell.onclick = function(){var obj = new Table(); obj.DeleteCell(_n,rownum,cellnum);};
 63  
 64  objRow.appendChild(objCell);
 65 }

 66 
 67 // 删除单元格所在的行
 68 this.DeleteRow = function(tblname,rownum)
 69ExpandedSubBlockStart.gifContractedSubBlock.gif {
 70   if((null == rownum) || (null == tblname)) return;
 71   var cellname = tblname + "_tr_" + rownum.toString()
 72   var obj = $(cellname);   
 73   var objBody = obj.parentNode;
 74   objBody.removeChild(obj);
 75 }

 76 
 77 // 删除单元格所在的列
 78 this.DeleteCell = function(tblname,rownum,cellnum)
 79ExpandedSubBlockStart.gifContractedSubBlock.gif {
 80   if((null == rownum) || (null == cellnum) || (null == tblname)) return;
 81   
 82   var cellname = tblname + "_tr_"+ rownum + "_td_" + cellnum.toString();
 83   var objcell = $(cellname);     
 84   var objBody = objcell.parentNode.parentNode;
 85   var objTable = objBody.parentNode;
 86   var x = objTable.rows.length;
 87   for(i=objTable.rows.length; i > 0; i--)
 88ExpandedSubBlockStart.gifContractedSubBlock.gif   {
 89     var r = i-1;
 90     var row = $(tblname + "_tr_"+ r.toString());
 91     var cell = $(tblname + "_tr_"+ r + "_td_" + cellnum.toString());
 92     row.removeChild(cell);
 93   }
   
 94 }

 95 
 96 // 填充表格数据
 97 this.SetDate = function(v)
 98ExpandedSubBlockStart.gifContractedSubBlock.gif {
 99   if(null == v) return;
100   for(i = 0; i < v.length; i++)
101ExpandedSubBlockStart.gifContractedSubBlock.gif   {
102     //_objTbl.rows[i].cells[3].innerText.innerText = v[i].CompName;
103     _objTbl.rows[i].cells[1].innerText = v[i].CompName;
104     _objTbl.rows[i].cells[2].innerText = v[i].CompAddr;
105   }

106 }

107}

108
109function $(id)
110ExpandedBlockStart.gifContractedBlock.gif  {
111    return document.getElementById(id);
112  }

113
114

 

以上为该功能核心代码,您可以这样调用:
 

ContractedBlock.gif ExpandedBlockStart.gif Code
 1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 2<html>
 3 <head>
 4  <title> Create Table </title>
 5  <meta name="Generator" content="EditPlus">
 6  <meta name="Author" content="">
 7  <meta name="Keywords" content="">
 8  <meta name="Description" content="">
 9  <script language="javascript" type="text/javascript" src ="Table.js"></script>
10 </head>
11ExpandedBlockStart.gifContractedBlock.gif  <script language="JavaScript">
12  <!--  
13 // 创建表格
14 function Create()
15ExpandedSubBlockStart.gifContractedSubBlock.gif {
16   var value = [
17ExpandedSubBlockStart.gifContractedSubBlock.gif     {'CompName':'昆山总公司','CompAddr':'昆山市'},
18ExpandedSubBlockStart.gifContractedSubBlock.gif     {'CompName':'苏州分公司','CompAddr':'aaaaa'},
19ExpandedSubBlockStart.gifContractedSubBlock.gif     {'CompName':'常熟分公司','CompAddr':'bbbbb'},
20ExpandedSubBlockStart.gifContractedSubBlock.gif     {'CompName':'南京分公司','CompAddr':'ccccc'},
21ExpandedSubBlockStart.gifContractedSubBlock.gif     {'CompName':'无锡分公司','CompAddr':'ddddd'}
22   ];
23   
24  var table = new Table();
25  
26  var tblname = GetRandomNum(1,5) ;
27  
28  var objTbl = table.Create(tblname,8,3);
29
30  table.SetDate(value);
31
32  $("Container").appendChild(objTbl);
33 }

34 
35 // 随机表格名
36 function GetRandomNum(Min,Max)
37ExpandedSubBlockStart.gifContractedSubBlock.gif {
38    var Range = Max - Min;
39    var Rand = Math.random();
40    var retval = (Min + Math.round(Rand * Range));
41    return "tbl" + retval;
42  }
 
43  
44  function Print()
45ExpandedSubBlockStart.gifContractedSubBlock.gif  {
46    alert(document.body.innerHTML);
47  }

48
49  //-->
50  
</script>
51 <body>
52  <div id="Container" style="border:1px solid red"></div>
53  <input type="button" value="创建表格" onclick="Create()" />
54  <input type="button" value="打印表格" onclick="Print()" />
55 </body>
56</html>
57
58

 

这样你可以动态创建一个表格,并支持删除单行或列。

这是最近项目中需要的东西,帮一同事写的js脚本,如果您还要对创建的表格进行其它,您可以适当扩充一下。

转载于:https://www.cnblogs.com/xiaodian/archive/2008/10/06/1305028.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值