[原创]js datagrid 静态数组版

时间:2007-11-15 23:12   作者:    阅读:441

既是项目的需要,也是出于好玩的缘故,弄了这么一个东东。
虽然用了那么一点点的jQuery,但是实际上不用它只用DOM照样可以实现,只是为了下一个版本(AJAX版)着想,提前热一热身子而已。下一个版本期待ing(有空再续。。。)
这个版本主要通过二维数组生成Table并将数组的值填充进取,实现了修改、删除、排序、分页等功能。

测试地址:
http://blog.chenreal.com/demo/datagrid/
源码:
http://blog.chenreal.com/demo/datagrid/js_datagrid.rar


代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>js DataGrid - DEMO</title>   
    <style>
    #load{position:absolute;left:400px; width:220px; top:150px;background-color:#EEEEEE; padding:30px;}
 #frame{font-size:12px;cursor:pointer;width:950px;margin:auto;}
 #frame input{border:solid 1px #999999; width:50px;font-size:12px;color:#FF0000}
 #frame table tr.row0{background-color:#FFFFFF;}
 #frame table tr.row1{background-color:#EFEFEF;}
 #frame table tr.rowOn{background-color:#CCCCCC;} 
 #frame table td a{color:#000000;text-decoration:none;}
 #frame table{width:950px;background-color:#333333;}
 #frame table th{text-align:center;background-color:#999999; color:#FFFFFF}
 #frame table th a{color:#FFFFFF;text-decoration:none;}
 h4{text-align:center;}
    </style>
    <script src="js/jquery.js" language="javascript" type="text/javascript"></script>
    <script language="javascript" type="text/javascript">
 var arrTitle = new Array('编号','切工','颜色','净度','克拉','证书','价格','抛光','对称','修改','删除');
 var arrTitleClass = new Array('sort','sort','sort','sort','sort','','sort','','','mod','del');
 var arrTemplate = new Array('','','','','{0}克拉','','¥{0}.00','','','','');
 var arr = new Array(
        new Array(1622,'G','G','VVS1',0.51,'IGI',23149,'G','G'),
        new Array(1512,'VG','E','VS1',0.56,'GIA',25402,'VG','EX'),
        new Array(1515,'VG','E','VS1',0.55,'GIA',24948,'VG','VG'),
        new Array(1508,'VG','E','VS1',0.52,'GIA',23587,'VG','EX'),
        new Array(616,'G','H','VS1',0.83,'GIA',37478,'G','G'),
        new Array(459,'G','G','VS1',0.72,'GIA',32394,'G','VG'),
        new Array(453,'G','G','VS1',0.7,'IGI',31494,'G','G'),
        new Array(1243,'EX','D','VVS1',0.47,'IGI',21596,'EX','EX'),
        new Array(1244,'VG','D','VVS1',0.47,'IGI',21596,'VG','EX'),
        new Array(1248,'EX','D','VVS1',0.47,'IGI',21596,'EX','EX'),
        new Array(1245,'EX','D','VVS1',0.46,'IGI',21137,'EX','EX'),
        new Array(1246,'EX','D','VVS1',0.46,'IGI',21137,'EX','EX'),
        new Array(1247,'VG','D','VVS1',0.46,'IGI',21137,'VG','EX'),
        new Array(388,'G','F','VVS2',0.5,'GIA',22975,'VG','G'),
        new Array(634,'G','H','VS2',0.95,'IGI',43820,'G','G'),
        new Array(1768,'G','F','VVS2',0.51,'IGI',22713,'VG','VG'),
        new Array(678,'G','H','VVS2',0.73,'GIA',33865,'VG','G'),
        new Array(2003,'ID','F','IF',0.46,'IGI',21340,'EX','EX'),
        new Array(1788,'ID','G','VVS2',0.5,'IGI',22165,'EX','EX'),
        new Array(1795,'ID','G','VVS2',0.5,'IGI',22165,'EX','EX'),
        new Array(1790,'ID','G','VVS2',0.54,'IGI',23938,'G','G'),
        new Array(1794,'ID','G','VVS2',0.54,'IGI',23938,'EX','EX'),
        new Array(1294,'VG','D','VS2',0.51,'IGI',22608,'VG','EX'),
        new Array(1793,'ID','G','VVS2',0.55,'IGI',24381,'G','G'),
        new Array(1517,'G','E','VS1',0.56,'GIA',24676,'VG','G'),
        new Array(539,'G','G','VVS1',0.51,'GIA',22458,'G','G'),
        new Array(2,'G','D','IF',0.32,'GIA',14091,'G','G'),
        new Array(612,'ID','H','VS1',0.75,'IGI',32938,'VG','VG'),
        new Array(1060,'EX','D','IF',0.44,'IGI',20639,'EX','EX'),
        new Array(462,'VG','G','VS1',0.8,'GIA',37655,'VG','VG'),
        new Array(1971,'VG','D','VS1',0.5,'IGI',21804,'VG','VG'),
        new Array(456,'G','G','VS1',0.71,'GIA',30961,'VG','G'),
        new Array(278,'G','F','VS1',0.7,'GIA',33123,'VG','G'),
        new Array(282,'G','F','VS1',0.75,'GIA',35489,'G','G'),
        new Array(1972,'G','E','VVS2',0.52,'IGI',24606,'G','G'),
        new Array(1766,'VG','F','VVS2',0.52,'IGI',24629,'EX','VG'),
        new Array(391,'ID','F','VVS2',0.52,'IGI',24629,'VG','VG'),
        new Array(610,'G','H','VS1',0.71,'IGI',30742,'G','G'),
        new Array(689,'G','I','SI1',1.35,'IGI',57657,'G','G'),
        new Array(614,'G','H','VS1',0.8,'GIA',34144,'G','G'),
        new Array(615,'G','H','VS1',0.83,'GIA',35424,'G','G'),
        new Array(1623,'G','G','VVS2',0.54,'IGI',22912,'G','VG'),
        new Array(1786,'ID','G','VVS2',0.51,'IGI',21639,'EX','EX'),
        new Array(1789,'ID','G','VVS2',0.51,'IGI',21639,'EX','EX'),
        new Array(1791,'ID','G','VVS2',0.59,'IGI',25033,'G','G'),
        new Array(1500,'VG','D','VS1',0.5,'GIA',24226,'VG','VG'),
        new Array(457,'G','G','VS1',0.71,'GIA',34401,'G','G'),
        new Array(1293,'VG','D','VS1',0.57,'IGI',27618,'VG','EX'),
        new Array(455,'G','G','VS1',0.7,'GIA',33917,'G','VG'),
        new Array(2010,'ID','G','IF',0.47,'IGI',19866,'EX','EX'),
        new Array(1352,'EX','E','VS2',0.5,'IGI',21134,'EX','EX'),
        new Array(1519,'VG','F','VS1',0.53,'GIA',22402,'VG','VG'),
        new Array(1401,'EX','F','VS1',0.59,'IGI',24938,'EX','EX'),
        new Array(272,'G','F','VS1',0.59,'IGI',24938,'G','VG'),
        new Array(266,'ID','F','VS1',0.52,'IGI',21979,'EX','EX'),
        new Array(1978,'EX','F','VS1',0.52,'IGI',21979,'EX','EX'),
        new Array(1353,'EX','E','VS2',0.51,'IGI',21556,'EX','EX'),
        new Array(1354,'EX','E','VS2',0.51,'IGI',21556,'EX','EX'),
        new Array(261,'VG','F','VS1',0.51,'IGI',21556,'VG','EX'),
        new Array(105,'G','E','VS1',0.5,'GIA',21060,'G','G'),
        new Array(479,'G','G','VS2',0.76,'IGI',32011,'G','G'),
        new Array(1254,'EX','E','VVS1',0.46,'IGI',19375,'EX','EX'),
        new Array(1249,'EX','D','VVS2',0.46,'IGI',19375,'EX','EX'),
        new Array(1250,'EX','D','VVS2',0.46,'IGI',19375,'EX','EX'),
        new Array(480,'G','G','VS2',0.77,'IGI',32432,'G','G'),
        new Array(1255,'VG','E','VVS1',0.47,'IGI',19796,'VG','EX'),
        new Array(395,'ID','F','VVS2',0.53,'IGI',25852,'EX','EX'),
        new Array(202,'G','E','VVS2',0.5,'GIA',24410,'VG','G'),
        new Array(279,'G','F','VS1',0.71,'IGI',34663,'G','G'),
        new Array(585,'G','G','VVS2',0.75,'GIA',36616,'G','VG'),
        new Array(276,'G','F','VS1',0.7,'IGI',34175,'G','G'),
        new Array(1706,'ID','D','VVS1',0.41,'IGI',17136,'EX','EX'),
        new Array(1718,'ID','E','IF',0.4,'IGI',16718,'EX','EX'),
        new Array(675,'VG','H','VVS2',0.71,'GIA',29644,'VG','VG'),
        new Array(120,'ID','E','VS2',0.55,'IGI',22915,'EX','EX'),
        new Array(1717,'ID','D','VVS1',0.46,'IGI',22762,'EX','EX'),
        new Array(1770,'ID','F','VVS2',0.52,'IGI',25731,'EX','EX'),
        new Array(393,'ID','F','VVS2',0.52,'IGI',25731,'EX','EX'),
        new Array(2001,'ID','E','IF',0.47,'IGI',23257,'EX','EX'),
        new Array(1813,'ID','I','VS1',0.9,'IGI',44535,'G','G'),
        new Array(1811,'ID','H','SI1',0.9,'IGI',44535,'G','G'),
        new Array(1399,'VG','F','VVS2',0.6,'IGI',29690,'VG','EX'),
        new Array(1814,'ID','I','VS1',0.91,'IGI',45030,'G','G'),
        new Array(1772,'ID','F','VVS2',0.51,'IGI',25237,'EX','EX'),
        new Array(1762,'ID','F','VVS2',0.51,'IGI',25237,'EX','EX'),
        new Array(1400,'VG','F','VVS2',0.64,'IGI',31670,'VG','EX'),
        new Array(655,'ID','H','VVS1',0.54,'IGI',22268,'EX','EX'),
        new Array(2002,'ID','F','VVS1',0.46,'IGI',18969,'EX','EX'),
        new Array(2013,'ID','E','VVS2',0.46,'IGI',18969,'EX','EX'),
        new Array(719,'G','I','VVS2',0.76,'GIA',31340,'G','G'),
        new Array(718,'G','I','VVS2',0.71,'GIA',29278,'VG','G'),
        new Array(2006,'ID','F','VVS1',0.47,'IGI',19381,'EX','EX'),
        new Array(1416,'EX','G','SI1',0.7,'IGI',28865,'EX','EX'),
        new Array(717,'G','I','VVS2',0.7,'GIA',28865,'G','G'),
        new Array(1061,'EX','D','VVS1',0.38,'IGI',15642,'EX','EX'),
        new Array(1062,'EX','D','VVS1',0.39,'IGI',16053,'EX','EX'),
        new Array(1063,'EX','D','VVS1',0.39,'IGI',16053,'EX','EX'),
        new Array(31,'G','D','VVS1',0.39,'GIA',16053,'G','G'),
        new Array(32,'VG','D','VVS1',0.39,'GIA',16053,'VG','VG'),
        new Array(1418,'EX','I','IF',0.82,'IGI',40758,'EX','EX'),
        new Array(1745,'ID','E','VS1',0.53,'IGI',21637,'VG','VG'),
        new Array(1973,'VG','E','VS1',0.5,'IGI',20412,'VG','VG'),
        new Array(1854,'G','D','IF',0.35,'IGI',14227,'G','G'),
        new Array(208,'ID','E','VVS2',0.56,'IGI',28181,'EX','EX'),
        new Array(268,'G','F','VS1',0.53,'GIA',21442,'VG','G'),
        new Array(258,'G','F','VS1',0.5,'GIA',20228,'G','G'),
        new Array(656,'G','H','VVS1',0.71,'GIA',35865,'VG','G'),
        new Array(611,'VG','H','VS1',0.73,'GIA',29350,'VG','VG'),
        new Array(1716,'ID','D','VVS1',0.43,'IGI',17155,'EX','EX'),
        new Array(264,'G','F','VS1',0.51,'GIA',20325,'G','G'),
        new Array(1729,'ID','F','IF',0.4,'IGI',15941,'EX','EX'),
        new Array(220,'ID','F','IF',0.41,'IGI',16339,'EX','EX'),
        new Array(1630,'G','H','VVS1',0.52,'IGI',20524,'G','G'),
        new Array(257,'G','F','VS1',0.5,'GIA',19624,'G','G'),
        new Array(1147,'EX','F','IF',0.38,'IGI',14914,'EX','EX'),
        new Array(1988,'EX','G','VS1',0.52,'IGI',20371,'EX','EX'),
        new Array(1987,'EX','G','VS1',0.51,'IGI',19979,'EX','EX'),
        new Array(106,'G','E','VS1',0.7,'GIA',36185,'G','VG'),
        new Array(205,'ID','E','VVS2',0.53,'IGI',27467,'EX','EX'),
        new Array(161,'ID','E','VVS1',0.42,'GIA',16330,'EX','EX'),
        new Array(159,'G','E','VVS1',0.4,'GIA',15552,'VG','G'),
        new Array(160,'VG','E','VVS1',0.4,'GIA',15552,'VG','VG'),
        new Array(154,'G','E','VVS1',0.38,'GIA',14774,'G','G'),
        new Array(2022,'G','G','VVS1',0.7,'HRD',36428,'G','G'),
        new Array(33,'G','D','VVS1',0.5,'GIA',26053,'G','G'),
        new Array(1083,'EX','E','VVS1',0.38,'IGI',14551,'EX','EX'),
        new Array(1084,'EX','E','VVS1',0.38,'IGI',14551,'EX','EX'),
        new Array(1086,'VG','E','VVS1',0.38,'IGI',14551,'VG','EX'),
        new Array(1088,'EX','E','VVS1',0.38,'IGI',14551,'EX','EX'),
        new Array(1090,'EX','E','VVS1',0.38,'IGI',14551,'EX','EX'),
        new Array(1094,'EX','E','VVS1',0.38,'IGI',14551,'EX','EX'),
        new Array(1095,'EX','E','VVS1',0.38,'IGI',14551,'EX','EX'),
        new Array(1092,'EX','E','VVS1',0.38,'IGI',14551,'EX','EX'),
        new Array(1109,'EX','E','VVS1',0.38,'IGI',14551,'EX','EX'),
        new Array(1110,'VG','E','VVS1',0.38,'IGI',14551,'VG','EX'),
        new Array(1266,'EX','F','VVS1',0.48,'IGI',18380,'EX','EX'),
        new Array(1256,'EX','E','VVS2',0.47,'IGI',17997,'EX','EX'),
        new Array(1257,'EX','E','VVS2',0.46,'IGI',17614,'EX','EX'),
        new Array(1258,'EX','E','VVS2',0.46,'IGI',17614,'EX','EX'),
        new Array(1267,'EX','F','VVS1',0.46,'IGI',17614,'EX','EX'),
        new Array(1265,'EX','F','VVS1',0.46,'IGI',17614,'EX','EX'),
        new Array(1106,'EX','E','VVS1',0.44,'IGI',16848,'EX','EX'),
        new Array(1108,'EX','E','VVS1',0.44,'IGI',16848,'EX','EX'),
        new Array(1104,'EX','E','VVS1',0.44,'IGI',16848,'EX','EX'),
        new Array(1098,'EX','E','VVS1',0.42,'IGI',16082,'EX','EX'),
        new Array(1114,'EX','E','VVS1',0.42,'IGI',16082,'EX','EX'),
        new Array(1096,'EX','E','VVS1',0.42,'IGI',16082,'EX','EX'),
        new Array(1087,'VG','E','VVS1',0.42,'IGI',16082,'VG','EX'),
        new Array(1085,'EX','E','VVS1',0.41,'IGI',15699,'EX','EX'),
        new Array(1091,'EX','E','VVS1',0.41,'IGI',15699,'EX','EX'),
        new Array(1089,'EX','E','VVS1',0.41,'IGI',15699,'EX','EX'),
        new Array(1099,'EX','E','VVS1',0.41,'IGI',15699,'EX','EX'),
        new Array(1101,'EX','E','VVS1',0.41,'IGI',15699,'EX','EX'),
        new Array(1102,'EX','E','VVS1',0.41,'IGI',15699,'EX','EX'),
        new Array(1107,'EX','E','VVS1',0.41,'IGI',15699,'EX','EX'),
        new Array(1105,'EX','E','VVS1',0.4,'IGI',15316,'EX','EX'),
        new Array(1093,'EX','E','VVS1',0.4,'IGI',15316,'EX','EX'),
        new Array(1115,'EX','E','VVS1',0.4,'IGI',15316,'EX','EX'),
        new Array(1113,'EX','E','VVS1',0.4,'IGI',15316,'EX','EX'),
        new Array(1097,'EX','E','VVS1',0.4,'IGI',15316,'EX','EX'),
        new Array(1100,'EX','E','VVS1',0.39,'IGI',14933,'EX','EX'),
        new Array(1103,'EX','E','VVS1',0.39,'IGI',14933,'EX','EX'),
        new Array(1111,'EX','E','VVS1',0.39,'IGI',14933,'EX','EX'),
        new Array(1112,'EX','E','VVS1',0.39,'IGI',14933,'EX','EX'),
        new Array(423,'ID','G','IF',0.53,'IGI',27865,'EX','EX'),
        new Array(1351,'EX','E','VVS2',0.53,'IGI',27865,'EX','EX'),
        new Array(1395,'EX','F','VVS1',0.58,'IGI',30494,'EX','EX'),
        new Array(1774,'ID','G','IF',0.54,'IGI',28391,'EX','EX'),
        new Array(1398,'VG','F','VVS1',0.5,'IGI',26288,'VG','EX'),
        new Array(1396,'VG','F','VVS1',0.63,'IGI',33123,'VG','EX'),
        new Array(1349,'VG','E','VVS2',0.51,'IGI',26814,'VG','EX'),
        new Array(1350,'VG','E','VVS2',0.51,'IGI',26814,'VG','EX'),
        new Array(1747,'ID','E','VVS2',0.51,'IGI',26814,'EX','EX'),
        new Array(588,'G','G','VVS2',0.81,'GIA',42587,'VG','G'),
        new Array(1397,'VG','F','VVS1',0.52,'IGI',27340,'VG','EX'),
        new Array(2005,'ID','E','VS1',0.47,'IGI',17928,'EX','EX'),
        new Array(2009,'ID','G','VVS1',0.47,'IGI',17928,'EX','EX'),
        new Array(1402,'EX','F','VS2',0.5,'IGI',19072,'EX','EX'),
        new Array(1415,'EX','I','IF',0.5,'IGI',19072,'EX','EX'),
        new Array(1522,'VG','F','VS2',0.57,'GIA',21742,'VG','VG'),
        new Array(1409,'EX','F','VS2',0.62,'IGI',23649,'EX','EX'),
        new Array(2008,'ID','G','VVS1',0.46,'IGI',17546,'EX','EX'),
        new Array(1525,'VG','F','VS2',0.53,'GIA',20216,'VG','VG'),
        new Array(1533,'VG','F','VS2',0.6,'GIA',22886,'VG','EX'),
        new Array(1403,'EX','F','VS2',0.51,'IGI',19453,'EX','EX'),
        new Array(1404,'EX','F','VS2',0.51,'IGI',19453,'EX','EX'),
        new Array(1405,'EX','F','VS2',0.51,'IGI',19453,'EX','EX'),
        new Array(1408,'EX','F','VS2',0.58,'IGI',22123,'EX','EX'),
        new Array(1406,'EX','F','VS2',0.56,'IGI',21360,'EX','EX'),
        new Array(1407,'EX','F','VS2',0.56,'IGI',21360,'EX','EX'),
        new Array(1976,'VG','F','VS1',0.51,'IGI',19401,'VG','VG'),
        new Array(1977,'VG','F','VS1',0.51,'IGI',19401,'VG','VG'),
        new Array(1754,'G','F','VS1',0.51,'IGI',19401,'G','G'),
        new Array(263,'G','F','VS1',0.51,'GIA',19401,'VG','G'),
        new Array(269,'G','F','VS1',0.54,'GIA',20542,'G','G'),
        new Array(1982,'VG','F','VS1',0.54,'IGI',20542,'VG','VG'),
        new Array(273,'G','F','VS1',0.59,'GIA',22444,'G','VG'),
        new Array(1979,'G','F','VS1',0.52,'IGI',19781,'G','G'),
        new Array(1983,'VG','F','VS1',0.57,'IGI',21683,'VG','VG'),
        new Array(1969,'VG','F','VS1',0.6,'IGI',22824,'VG','VG'),
        new Array(1975,'VG','F','VS1',0.5,'IGI',19020,'VG','VG'),
        new Array(260,'G','F','VS1',0.5,'GIA',19020,'G','G'),
        new Array(706,'VG','I','VS2',2.39,'IGI',257475,'VG','VG'),
        new Array(427,'ID','G','IF',1.07,'IGI',117698,'EX','EX'),
        new Array(1574,'ID','F','VVS2',1,'IGI',110278,'EX','EX'),
        new Array(1586,'ID','F','VVS2',1,'IGI',110278,'EX','EX'),
        new Array(212,'ID','E','VVS2',1.01,'GIA',117182,'EX','EX'),
        new Array(289,'G','F','VS1',1.5,'GIA',197935,'VG','G'),
        new Array(1570,'VG','F','VS2',2,'IGI',302439,'VG','VG'),
        new Array(681,'VG','H','VVS2',2.02,'HRD',318524,'VG','VG'),
        new Array(472,'VG','G','VS1',2.03,'GIA',379654,'EX','VG')
 ); 
 var IsPaging = true;
 var PageSize = 15;//每页显示记录数
 var PageIndex = 0;//初始页数
 var TotalPage = 0;//总页数
 var NumSize = 5;//页脚数字长度:0为全长
 var hoverClassName = ""; 
//开始时间统计
function startTime(){  
  var dt = new Date();        
  window.status = "Start:"+dt.getMinutes()+":"+dt.getSeconds()+"."+dt.getMilliseconds();
}
//结束时间统计
function endTime(){
  var dt = new Date();
  window.status += " End:"+dt.getMinutes()+":"+dt.getSeconds()+"."+dt.getMilliseconds()+"(length:"+arr.length+")";
}  
//升序排列  
function upClick(index){
  startTime();
  $("#load").show(40,function(){orderUp(index);endTime();});    
}
function orderUp(index){
  if(EditMode()) return;    
  arr.sort(function(x,y){return (typeof(arr[0][index])=="number") ? x[index] - y[index] : x[index].localeCompare(y[index])});
  firstPage();
  $("#load").hide();
}
//降序排列
function downClick(index){
  startTime();
  $("#load").show(40,function(){orderDown(index);endTime();});
}
function orderDown(index){
  if(EditMode()) return;     
  arr.sort(function(x,y){return (typeof(arr[0][index])=="number") ? y[index]-x[index] : y[index].localeCompare(x[index])});
  firstPage();
  $("#load").hide();
}
//是否修改模式(不允许排序)
function EditMode(){
   return $("#tab input").length>0;
}
//修改
function Edit(e,index){
 setEdit(e.parentNode);
 for(var j=0;j<index;j++){
    e.parentNode.parentNode.childNodes[j].innerHTML="<input value="+e.parentNode.parentNode.childNodes[j].innerHTML+"><input type=hidden value="+e.parentNode.parentNode.childNodes[j].innerHTML+">";
 }
}
//确认修改
function EditOK(e,index){
 setEdit(e.parentNode);
 for(var j=0;j<index;j++){
    e.parentNode.parentNode.childNodes[j].innerHTML=e.parentNode.parentNode.childNodes[j].childNodes[0].value;
 }
}
//取消修改
function EditCancel(e,index){
 setEdit(e.parentNode);
 for(var j=0;j<index;j++){
    e.parentNode.parentNode.childNodes[j].innerHTML=e.parentNode.parentNode.childNodes[j].childNodes[1].value;
 }
}
//设置修改按钮
function setEdit(e){
 for(var i=0;i<e.childNodes.length;i++){
   if(e.childNodes[i].tagName != "A")continue;
   if(e.childNodes[i].style.display == "none"){
  e.childNodes[i].style.display = "";
   }
   else{
  e.childNodes[i].style.display = "none";
   }
 }
}  
//清除表格内容列
function ClearTableList(){     
  var oTB = $("#mytb")[0];  
  var oTr = oTB.childNodes[0].childNodes[0].cloneNode(1);
  oTB.removeChild(oTB.childNodes[0]);
  var oTBody = document.createElement("tbody");
  oTBody.appendChild(oTr); 
  oTB.appendChild(oTBody);
}
//生成表格标题行
function CreateTableTitle(){
  var oTr = document.createElement("tr");
  var oTh = document.createElement("th");
  //标题
  for( var i=0;i<arrTitle.length;i++){
  var th = oTh.cloneNode(1);
  th.innerHTML = arrTitle[i];
  if(arrTitleClass[i] != ""){
  th.className=arrTitleClass[i];
  if(arrTitleClass[i] == "sort"){
   th.innerHTML += '<img src=img/up.gif onclick="upClick('+i+');" alt="升序排列" /><img src=img/down.gif onclick="downClick('+i+')" alt="降序排列" />';
  }
  }
  oTr.appendChild(th);
  }
  return oTr;
}
//分页
function CreateTableFoot(){
  var oTr = document.createElement("tr");
  var oTh = document.createElement("th");
  oTh.colSpan = arrTitle.length;
  oTh.id = "Pager";
  var pageNum = "";
  var k = 1;
  var StartNum = 1;
  if(NumSize>0) StartNum = PageIndex+1;
  for(var i=StartNum;i<TotalPage+2;i++){
 pageNum += '<a href="javascript:void(0);" onclick="goPage('+(i-1)+')">'+i+'</a> ';
 if(NumSize>0)k++;
 if(k > NumSize && i < TotalPage+1 && NumSize>0){
   pageNum += '<a href="javascript:void(0);" onclick="goPage('+(i)+')">…</a> ';
   break;
 }
  }
  oTh.innerHTML = '<a href="javascript:void(0);" onclick="firstPage()">首页</a> <a href="javascript:void(0);" onclick="prevPage()">上一页</a> '+pageNum+'<a href="javascript:void(0);" onclick="nextPage()">下一页</a> <a href="javascript:void(0);" onclick="lastPage()">末页</a>';
  oTr.appendChild(oTh);
  return oTr;
}
//生成内容列表
function CreateTableList(index){
  var oTr = document.createElement("tr");
  var oTd = document.createElement("td");
  oTr.className = "row" + index%2;
  oTr.onmouseover=function(){
   hoverClassName = this.className;
   this.className = "rowOn";
  }
  oTr.onmouseout=function(){
   this.className = hoverClassName;
   hoverClassName = "";      
  }
  for( var i=0;i<arrTitle.length;i++){
  var td = oTd.cloneNode(1);
  if(arr[index][i] || arr[index][i] == 0){
    if(arrTemplate[i] == ""){    
   td.innerHTML = arr[index][i];
    }
    else{
   td.innerHTML = arrTemplate[i].replace("{0}",arr[index][i]);
    }         
  }
    if(arrTitleClass[i]=="mod"){
   td.innerHTML="<a href='javascript:void(0)' onclick='EditOK(this,"+i+")' style='display:none;'>确定</a> "
      +"<a href='javascript:void(0)' onclick='EditCancel(this,"+i+")' style='display:none;'>取消</a> "
      +"<a href='javascript:void(0)' onclick='Edit(this,"+i+")'>修改</a>";
    }
    if(arrTitleClass[i]=="del"){
    td.innerHTML="删除";
    td.onclick=function(){
   if(confirm("确认删除?"))td.parentNode.parentNode.removeChild(td.parentNode);
    }
    }
  oTr.appendChild(td);
  }  
  return oTr;
}
function goPage(index){
  PageIndex = index;
  CreatePagingList();
}
function prevPage(){
  if(PageIndex == 0)return;
  PageIndex--;
  CreatePagingList();

function nextPage(){
  if((PageIndex+1)*PageSize>=arr.length) return;
  PageIndex++;
  CreatePagingList();
}
function firstPage(){
  PageIndex=0;
  CreatePagingList();
}
function lastPage(){
  PageIndex=TotalPage;
  CreatePagingList();
}
function CreatePagingList(){
  ClearTableList();
  var oTBody = $("#mytb")[0].childNodes[0];
  for(var k=PageIndex*PageSize;k<(PageIndex+1)*PageSize;k++){
   oTBody.appendChild(CreateTableList(k));
   if(k==arr.length-1)break;
  }
  oTBody.appendChild(CreateTableFoot());
}
//初始化表格
function Initial(){
  if(arr.length == 0) return;    
  var oTab = document.createElement("table");
  var oTBody = document.createElement("tbody");
  if(!IsPaging){
 PageSize = arr.length;
  }  
  oTBody.appendChild(CreateTableTitle());  
  for(var k=0;k<PageSize;k++){
   oTBody.appendChild(CreateTableList(k));
  }
  if(IsPaging){
 TotalPage = Math.floor(arr.length/PageSize);
 if(arr.length % PageSize ==0) TotalPage--;
 oTBody.appendChild(CreateTableFoot());
  }   
  oTab.appendChild(oTBody);
 
  oTab.id = "mytb";     
  oTab.cellPadding = 5;
  oTab.cellSpacing = 1;
  oTab.border = 0;
  
  $("#frame")[0].appendChild(oTab);  
  $("#load").hide();
  endTime();
}        
    window.onload=function(){startTime();setTimeout("Initial()",10);}
    </script>   
</head>
<body>
<div id="load">
  <h3>正在加载数据,请稍候...</h3>
  <img src="img/loading.gif" />
</div>
<h4>JS DataGrid Demo - 静态数组版</h4>
<div id="frame">
</div>
</body>
</html>

 

评论
0/200