关于表格事件(转)
来源:互联网 发布:11月份经济数据 编辑:程序博客网 时间:2024/05/07 19:36
提问中的问题
关于表格事件
接触JavaScript不是很久,不是非常熟悉这语言的规范,看到一个表格控件很好,但是不知道怎么加AddRow的事件.
似乎是表格初始化时从DATA中的多维数组采集数据信息,然后由JavaScript统一刷新.
现在需要在页面上增加个按钮事件,可以达到在表格中插入新增一行的效果.
但不知道 这要怎么在这基础上改.
热心人士帮帮忙哈...挺急用的.谢了咯
这贴不下代码.我贴51上了...谢谢嘎
http://bbs.51js.com/thread-72131-1-1.html
似乎是表格初始化时从DATA中的多维数组采集数据信息,然后由JavaScript统一刷新.
现在需要在页面上增加个按钮事件,可以达到在表格中插入新增一行的效果.
但不知道 这要怎么在这基础上改.
热心人士帮帮忙哈...挺急用的.谢了咯
这贴不下代码.我贴51上了...谢谢嘎
http://bbs.51js.com/thread-72131-1-1.html
提问时间: 2007-9-14 15:35:03
最佳答案
这似乎冷场西....
------------------------------------------------------------------------------------
饿...增加删除的问题解决了.
但是如何插入到页面的元素中出大问题了
插到网页的任何元素都会IE doucument出错终止程序.只有插在body内不会出错.
找了些资料说是初始化未完成就被自定义转了值.
但是init方法不放在元素内的话那这就没意义了啊.
有谁对底层了解一点的吗?
------------------------------------------------------------------------------------
如果新手看了这些代码估计就怕怕了
------------------------------------------------------------------------------------
初学者做的 大家不要见笑哈
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML >
<HEAD >
<TITLE > New Document </TITLE >
<META NAME="Generator" CONTENT="EditPlus" >
<META NAME="Author" CONTENT="" >
<META NAME="Keywords" CONTENT="" >
<META NAME="Description" CONTENT="" >
<script language="javascript" >
var currenttr=null;
function fastupdate(src)
{
var value=src.innerHTML;
src.innerHTML=" <input type= "text " onkeydown= "if (event.keyCode==13){save(this);} " name= "newvalue " value= ""+value+" " onblur= "save(this) " >";
src.firstChild.select();
src.firstChild.focus();
}
function save(src)
{
var div=src.parentNode;
div.innerHTML=src.value;
}
function add(form)
{
var username=form.username.value;
var password=form.password.value;
if (username=="" ¦ ¦ password=="")
{
alert("请输入完整!");
return;
}
var table=document.getElementById("mytable");
var rowcount=table.rows.length;
table.insertRow(rowcount);
table.rows[rowcount].insertCell(0);
table.rows[rowcount].setAttribute("align","center");
table.rows[rowcount].cells[0].innerHTML=" <div onmouseover= "changecolor(this) " onDblClick= "fastupdate(this) " >"+username+" </div >";
table.rows[rowcount].insertCell(1);
table.rows[rowcount].cells[1].innerHTML=" <div onmouseover= "changecolor(this) " onDblClick= "fastupdate(this) " >"+password+" </div >";
table.rows[rowcount].insertCell(2);
table.rows[rowcount].cells[2].innerHTML=" <input type= "button " value= "删除 " onclick= "del(this) "/ >";
table.rows[rowcount].cells[2].innerHTML+=" <input type= "button " value= "更新 " onclick= "update(this) "/ >";
form.username.value="";
form.password.value="";
form.username.focus();
}
function del(src)
{
var tr=src.parentNode.parentNode;
var tbody=document.getElementById("mytable").firstChild;
tbody.removeChild(tr);
}
function update(src)
{
var tr=src.parentNode.parentNode;
var str=prompt("输入用户名和密码,以逗号分开!");
if (str!=null && str!="" && str!="undefined" && str.indexOf(",") >=0)
{
var arr=str.split(",");
usernametd=tr.firstChild;
passwordtd=tr.childNodes[1];
usernametd.innerHTML=" <div onmouseover= "changecolor(this) " onDblClick= "fastupdate(this) " >"+arr[0]+" </div >";
passwordtd.innerHTML=" <div onmouseover= "changecolor(this) " onDblClick= "fastupdate(this) " >"+arr[1]+" </div >";
}
}
function changecolor(src)
{
var tr=src.parentNode.parentNode;
if (currenttr!=null)
{
currenttr.style.background="#FFFFFF";
}
tr.style.background="#CCCCCC";
currenttr=tr;
}
</script >
</HEAD >
<BODY >
<form id="myfrom" >
用户名: <input type="text" onkeydown="if (event.keyCode==13) {password.focus();password.select()}" name="username"/ > <br/ >
密码: <input type="password" onkeydown="if (event.keyCode==13) btn.click();" name="password" > <br/ >
<input type="button" value="增加" name="btn" onclick="add(this.form)"/ >
</form >
<div align="center" >
<table border="1" cellpadding="0" cellspacing="0" width="70%" id="mytable" >
<tr >
<th >用户名 </th >
<th >密码 </th >
<th >操作 </th >
</tr >
</table >
</div >
</BODY >
</HTML >
------------------------------------------------------------------------------------
关注ing
------------------------------------------------------------------------------------
......冷清啊
------------------------------------------------------------------------------------
完整的代码控件三个回贴拼起来.
AddRow()是我自己写的,但是完全没有达到按照表格自身模式添加新一行.
希望哪个牛人帮忙看看要怎么改...
------------------------------------------------------------------------------------
dataobj.rows[eprowindex].className = "selectedrow";
nowrow = eprowindex;
}
}
}
//更改列宽
t s.rsc_d = function(e,obj){
var px = document.all?e.offsetX:e.layerX-obj.offsetLeft;
if(px >obj.offsetWidth-6 && px <obj.offsetWidth){
e=e ¦ ¦window.event;
obj=obj ¦ ¦t s;
ml = e.clientX;
ow = obj.offsetWidth;
tdobj = obj;
if(obj.setCapture){
obj.setCapture();
}else{
e.preventDefault();
}
}else{
if(nowrow!=null){
dataobj.rows[nowrow].className = "";
}
if(obj.getAttribute("sort")==null){
obj.setAttribute("sort",0);
}
var sort = obj.getAttribute("sort");
if(sort==1){
dgsort(obj,true);
obj.setAttribute("sort",0);
}else{
dgsort(obj,false);
obj.setAttribute("sort",1);
}
obj.className = "sortdown";
}
}
t s.mouseup = function(obj){
obj.className = "over";
}
function rsc_m(e){
if(tdobj!=null){
e=e ¦ ¦window.event;
var newwidth = ow-(ml-e.clientX);
if(newwidth >5){
tdobj.style.width = newwidth;
dataobj.rows[0].cells[tdobj.cellIndex].style.width = newwidth;
}else{
tdobj.style.width = 5;
dataobj.rows[0].cells[tdobj.cellIndex].style.width = 5;
}
dh.setwh();
scrh();
}
}
function rsc_u(e){
if(tdobj!=null){
e=e ¦ ¦window.event;
var newwidth = ow-(ml-e.clientX);
if(newwidth >5){
tdobj.style.width = newwidth;
dataobj.rows[0].cells[tdobj.cellIndex].style.width = newwidth;
}else{
tdobj.style.width = 5;
dataobj.rows[0].cells[tdobj.cellIndex].style.width = 5;
}
if(tdobj.releaseCapture){
tdobj.releaseCapture();
}
ml = 0;
ow = 0;
tdobj = null;
}
dh.setwh();
scrh();
}
t s.cc = function(e,obj){
var px = document.all?e.offsetX:e.layerX-obj.offsetLeft;
if(px >obj.offsetWidth-6 && px <obj.offsetWidth){
obj.style.cursor = "col-resize";
}else{
obj.style.cursor = "default";
}
}
t s.over = function(obj){
obj.className = "over";
}
t s.out = function(obj){
obj.className = "column";
}
t s.dataover = function(obj){
if(obj.rowIndex!=nowrow){
obj.className = "dataover";
}
}
t s.dataout = function(obj){
if(obj.rowIndex!=nowrow){
obj.className = "";
}
}
//键盘Up & Down事件
function updown(e){
e=e ¦ ¦ window.event; e=e.w ch ¦ ¦ e.keyCode;
var rl = dh.data.length;
switch(e){
case 38://Up;
if(nowrow!=null && nowrow >1){
vbar.scrollTop -= 18;
dataobj.rows[nowrow].className = "";
nowrow -= 1;
dataobj.rows[nowrow].className = "selectedrow";
};
break;
case 40://Down;
if(nowrow!=null && nowrow <rl){
vbar.scrollTop += 18;
dataobj.rows[nowrow].className = "";
nowrow += 1;
dataobj.rows[nowrow].className = "selectedrow";
};
break;
default:break;
}
}
function dti(s){
var n = 0;
var a = s.match(//d+/g);
for(var i=0;i <a.length;i++){
if(a[i].length <2){
a[i] = "0"+a[i];
}
}
n = a.join("");
return n;
}
//排序
function dgsort(obj,asc){
var rl = dh.data.length;
var ci = obj.cellIndex;
var rowsobj = [];
for(var i=1;i <dataobj.c ldNodes[0].rows.length;i++){
rowsobj[i-1] = dataobj.c ldNodes[0].rows[i];
}
rowsobj.sort(function(trObj1,trObj2){
if(!isNaN(trObj1.cells[ci].innerHTML.charAt(0)) && !isNaN(trObj2.cells[ci].innerHTML.charAt(0))){
if(asc){
return dti(trObj1.cells[ci].innerHTML)-dti(trObj2.cells[ci].innerHTML);
}else{
return dti(trObj2.cells[ci].innerHTML)-dti(trObj1.cells[ci].innerHTML);
}
}else{
if(asc){
return trObj1.cells[ci].innerHTML.localeCompare(trObj2.cells[ci].innerHTML);
}else{
return trObj2.cells[ci].innerHTML.localeCompare(trObj1.cells[ci].innerHTML);
}
}
});
for(var i=0;i <rowsobj.length;i++){
dataobj.c ldNodes[0].appendC ld(rowsobj[i]);
}
for(var c=1;c <obj.parentNode.cells.length-1;c++){
obj.parentNode.cells[c].c ldNodes[1].innerHTML = "";
}
if(asc){
obj.c ldNodes[1].innerHTML = "▲";
}else{
obj.c ldNodes[1].innerHTML = "▼";
}
}
}
function AddRow(){
var tab=document.getElementById("datacolumn");
var cb=document.createElement("input");
cb.type="checkbox";
var tr=tab.insertRow(0);
var cell=tr.insertCell(0);
cell.appendC ld(cb);
cb.Parent=tr;
tr.CB=cb;
}
</script >
</head >
<body style="background:#ECE9D8;" >
<form name="form1" method="post" action="" >
<button onclick="AddRow()" >添加行 </button >
</form >
<script language="javascript" >
var dhdg = new dhdatagrid();
dhdg.callname = "dhdg";
dhdg.columns = ["1","2","3"];
dhdg.data = [["000","5555","2006-12-6 17:06"],["22","333","444"]];
dhdg.dblclick_fun = function(e){alert(e+ ",ondblclick ");}
dhdg.contextmenu_fun = function(e){alert(e+ ",oncontextmenu ");}
dhdg.init();
dhdg.setwh();
</script >
</body >
</html >
------------------------------------------------------------------------------------
up
------------------------------------------------------------------------------------
//dhdatagrid zero point 零点
var dgzero = " <div id=/"zero/" > </div >"
//dhdatagrid slidecolumn 第一列
var dgslide = " <table cellpadding=/"0/" cellspacing=/"0/" id=/"slidecolumn/" >"+dgs+" </table >";
//dhdatagrid column 标题栏
var dgcolumn = " <table cellpadding=/"0/" cellspacing=/"0/" id=/"titlecolumn/" >"+dgc+" </table >";
//dhdatagrid data 数据
var dgdata = " <table cellpadding=/"0/" cellspacing=/"0/" id=/"datacolumn/" >"+dgc+dgd+" </table >";
//dhdatagrid hbar 水平滚动条
var dghbar = document.createElement("DIV");
dghbar.id = "hbar";
dghbar.style.position = "absolute";
dghbar.style.width = "100%";
dghbar.style.height = "17px";
dghbar.style.top = this.height-17;
dghbar.style.overflowX = "auto";
dghbar.style.zIndex = "10";
dghbar.onscroll = function(){scrh();}
dghbar.innerHTML = " <div style=/"width:100%;height:1px;overflow-y:hidden;/" > </div >";
//dhdatagrid vbar 垂直滚动条
var dgvbar = document.createElement("DIV");
dgvbar.id = "vbar";
dgvbar.style.position = "absolute";
dgvbar.style.width = "17px";
dgvbar.style.height = "100%";
dgvbar.style.left = this.width-17;
dgvbar.style.overflowY = "auto";
dgvbar.style.zIndex = "10";
dgvbar.onscroll = function(){scrv();}
dgvbar.innerHTML = " <div style=/"width:1px;height:100%;overflow-x:hidden;/" > </div >";
//dhdatagrid bgbar 滚动条背景
var dgbgbar = document.createElement("DIV");
dgbgbar.id = "bgbar";
dgbgbar.style.background = "buttonface";
dgbgbar.style.position = "absolute";
dgbgbar.style.width = "100%";
dgbgbar.style.height = "17px";
dgbgbar.style.top = this.height-17;
dgbgbar.style.overflowX = "auto";
dgbgbar.style.zIndex = "9";
dgbgbar.style.display = "none";
dgbgbar.innerHTML = " ";
//appendChild
dgframe.innerHTML = dgzero+dgslide+dgcolumn+dgdata;
dgframe.appendChild(dghbar);
dgframe.appendChild(dgvbar);
dgframe.appendChild(dgbgbar);
this.parentNode.appendChild(dgframe);
if(document.attachEvent){
document.attachEvent("onkeydown",updown);
}else{
document.addEventListener("keydown",updown,false);
}
framediv = dgframe;
zerobj = document.getElementById("zero");
leftobj = document.getElementById("slidecolumn");
titleobj = document.getElementById("titlecolumn");
dataobj = document.getElementById("datacolumn");
hbar = dghbar;
vbar = dgvbar;
bgbar = dgbgbar;
var btt = getCurrentStyle(framediv,"borderTopWidth");
var btr = getCurrentStyle(framediv,"borderRightWidth");
var btb = getCurrentStyle(framediv,"borderBottomWidth");
var btl = getCurrentStyle(framediv,"borderLeftWidth");
var fh = getCurrentStyle(framediv,"height");
var zh = getCurrentStyle(zerobj,"height");
var zbt = getCurrentStyle(zerobj,"borderTopWidth");
var zbb = getCurrentStyle(zerobj,"borderBottomWidth");
if(document.all){
vbar.style.left = parseInt(vbar.style.left)-parseInt(btr)-parseInt(btl);
}else{
framediv.style.height = parseInt(fh)-parseInt(btb)-parseInt(btt);
zerobj.style.height = parseInt(zh)-parseInt(zbb)-parseInt(zbt);
}
hbar.style.top = parseInt(hbar.style.top)-parseInt(btb)-parseInt(btt);
bgbar.style.top = parseInt(bgbar.style.top)-parseInt(btb)-parseInt(btt);
}
function getCurrentStyle(oElement, sProperty) {
if(oElement.currentStyle){
return oElement.currentStyle[sProperty];
}else if(window.getComputedStyle){
sProperty = sProperty.replace(/([A-Z])/g, "-$1").toLowerCase();
return window.getComputedStyle(oElement, null).getPropertyValue(sProperty);
}else{
return null;
}
}
//设置块滚动条
this.setwh = function(){
hbar.style.display = "block";
vbar.style.display = "block";
hbar.childNodes[0].style.width = dataobj.offsetWidth;
vbar.childNodes[0].style.height = dataobj.offsetHeight;
if(hbar.childNodes[0].offsetWidth <=hbar.offsetWidth){
hbar.style.display = "none";
}else{
hbar.style.display = "block";
}
if(vbar.childNodes[0].offsetHeight <=vbar.offsetHeight){
vbar.style.display = "none";
}else{
vbar.style.display = "block";
}
if(hbar.childNodes[0].offsetWidth >hbar.offsetWidth && vbar.childNodes[0].offsetHeight >vbar.offsetHeight && changeposv){
bgbar.style.display = "block";
hbar.style.width = hbar.offsetWidth-17;
vbar.style.height = vbar.offsetHeight-17;
vbar.childNodes[0].style.height = vbar.childNodes[0].offsetHeight+17;
changeposv = false;
}
if(hbar.childNodes[0].offsetWidth <=hbar.offsetWidth+17 && !changeposv){
bgbar.style.display = "none";
hbar.childNodes[0].style.width = 0;
hbar.style.width = hbar.offsetWidth+17;
vbar.style.height = vbar.offsetHeight+17;
changeposv = true;
if(vbar.offsetHeight-dataobj.offsetHeight >dataobj.offsetTop && document.all){
leftobj.style.top = leftobj.offsetTop+17;
dataobj.style.top = dataobj.offsetTop+17;
}
}
}
//鼠标滚轮,列表滚动事件
function mwEvent(e){
e=e ¦ ¦window.event;
if(e.wheelDelta <=0 ¦ ¦ e.detail >0){
vbar.scrollTop += 18;
}else {
vbar.scrollTop -= 18;
}
}
function ae(obj){
if(document.attachEvent){
obj.attachEvent("onmousewheel",mwEvent);
}else{
obj.addEventListener("DOMMouseScroll",mwEvent,false);
}
}
//滚动条事件
function scrv(){
leftobj.style.top = -(vbar.scrollTop);
dataobj.style.top = -(vbar.scrollTop);
}
function scrh(){
titleobj.style.left = -(hbar.scrollLeft);
dataobj.style.left = -(hbar.scrollLeft);
}
//选择行
function getrow(e){
e=e ¦ ¦window.event;
var esrcobj = e.srcElement?e.srcElement:e.target;
if(esrcobj.parentNode.tagName=="TR"){
var epobj = esrcobj.parentNode;
var eprowindex = epobj.rowIndex;
if(eprowindex!=0){
if(nowrow!=null){
dataobj.rows[nowrow].className = "";
}
------------------------------------------------------------------------------------
<html >
<head >
<meta http-equiv="content-type" content="type=text/html; charset=gb2312" >
<style type="text/css" >
/*dhdatagrid 大块样式*/
#dhdatagrid {position:relative;width:500px;height:200px;background:white;margin:0px;padding:0px;overflow:hidden;border:1px inset;-moz-user-select:none;}
/*dhdatagrid 表格全局样式*/
#dhdatagrid table {table-layout:fixed;margin:0px;}
#dhdatagrid table td {height:18px;cursor:default;font-size:12px;font-family:verdana;overflow:hidden;white-space:nowrap;text-indent:2px;border-right:1px solid buttonface;border-bottom:1px solid buttonface;}
#dhdatagrid table td .arrow {font-size:8px;color:#808080;}
#dhdatagrid table .lastdata {border-right:none;}
#dhdatagrid table .column {width:120px;cursor:default;background:buttonface;border-top:1px solid #fff;border-right:1px solid #404040;border-bottom:1px solid #404040;border-left:1px solid #fff;}
#dhdatagrid table .over {width:120px;cursor:default;background:buttonface;border-top:1px solid #fff;border-right:1px solid #404040;border-bottom:1px solid #404040;border-left:1px solid #fff;}
#dhdatagrid table .sortdown {width:120px;cursor:default;background:buttonface;border-right:1px solid #ffffff;border-bottom:1px solid #ffffff;border-left:1px solid #404040;border-top:1px solid #404040;position:relative;left:1px;}
#dhdatagrid table .dataover {background:#FAFAFA;}
#dhdatagrid table .firstcolumn {width:30px;text-indent:0px;text-align:center;background:buttonface;border-top:1px solid #fff;border-right:1px solid #404040;border-bottom:1px solid #404040;border-left:1px solid #fff;}
#dhdatagrid table .lastcolumn {background:buttonface;border-top:1px solid #fff;border-right:1px solid #404040;border-bottom:1px solid #404040;border-left:1px solid #fff;}
/*dhdatagrid 选定行样式*/
#dhdatagrid table .selectedrow {background:highlight;color:white;}
/*dhdatagrid 表头样式*/
#dhdatagrid #titlecolumn {width:100%;position:absolute;top:0px;left:0px;z-index:3;}
/*dhdatagrid 左边栏样式*/
#dhdatagrid #slidecolumn {width:30px;position:absolute;top:0px;left:0px;z-index:2;}
#dhdatagrid #slidecolumn td {width:30px;text-indent:0px;text-align:center;background:buttonface;border-top:1px solid #fff;border-right:1px solid #404040;border-bottom:1px solid #404040;border-left:1px solid #fff;}
/*dhdatagrid 内容表体样式*/
#dhdatagrid #datacolumn {width:100%;position:absolute;top:0px;left:0px;}
/*dhdatagrid 原点样式*/
#dhdatagrid #zero {width:30px;height:18px;margin:0px;padding:0px;position:absolute;top:0px;left:0px;z-index:10;background:buttonface;border-top:1px solid #fff;border-right:1px solid #404040;border-bottom:1px solid #404040;border-left:1px solid #fff;text-align:center;font-size:10px;color:#A19F92;}
</style >
<script language="javascript" >
function dhdatagrid(){
//author:dh20156;
this.callname = "dhdg";
this.width = 500;
this.height = 200;
this.rid = "dhdatagrid";
this.columns = [];
this.data = [];
this.dblclick_fun = function(){}
this.contextmenu_fun = function(){}
this.parentNode = document.body;
var dh = this;
var framediv = null;
var zerobj = null;
var leftobj = null;
var titleobj = null;
var dataobj = null;
var hbar = null;
var vbar = null;
var bgbar = null;
//改变列宽初始位置
var ml = 0;
//改变列宽对象初始宽度
var ow = 0;
//改变列宽对象
var tdobj = null;
//当前选定行索引
var nowrow = null;
//是否更改垂直滚动条位置
var changeposv = true;
this.init = function(){
//init the data 初始数据
var dgc = "";
if(this.columns.length >0){
dgc = " <tr > <td class=/"firstcolumn/" > </td >";
for(var cc=0;cc <this.columns.length;cc++){
dgc += " <td class=/"column/" onmouseover=/""+this.callname+".over(this);/" onmouseout=/""+this.callname+".out(this);/" onmousemove=/""+this.callname+".cc(event,this);/" onmousedown=/""+this.callname+".rsc_d(event,this);/" onmouseup=/""+this.callname+".mouseup(this);/" >"+this.columns[cc]+" <span class=/"arrow/" > </span > </td >";
}
dgc += " <td class=/"lastcolumn/" > </td > </tr >";
}
var dgs = "";
var dgd = "";
if(this.data.length >0){
//第一列
dgs = " <tr > <td > </td > </tr >";
for(var r=0;r <this.data.length;r++){
dgs += " <tr > <td >"+(r+1)+" </td > </tr >";
dgd += " <tr onmouseover=/""+this.callname+".dataover(this);/" onmouseout=/""+this.callname+".dataout(this);/" > <td class=/"firstcolumn/" > </td >";
for(var c=0;c <this.data[r].length;c++){
dgd += " <td ondblclick=/""+this.callname+".dblclick_fun(this);/" oncontextmenu=/""+this.callname+".contextmenu_fun(this);/" >"+this.data[r][c]+" </td >";
//alert(this.data[r][c]);
}
dgd += " <td class=/"lastdata/" > </td > </tr >";
}
if(dgc==""){
dgc = " <tr > <td class=/"firstcolumn/" > </td >";
for(var dc=0;dc <this.data[0].length;dc++){
dgc += " <td class=/"column/" onmouseover=/""+this.callname+".over(this);/" onmouseout=/""+this.callname+".out(this);/" onmousemove=/""+this.callname+".cc(event,this);/" onmousedown=/""+this.callname+".rsc_d(event,this);/" onmouseup=/""+this.callname+".mouseup(this);/" >Expr"+(dc+1)+" <span class=/"arrow/" > </span > </td >";
}
dgc += " <td class=/"lastcolumn/" > </td > </tr >";
}
}
//dhdatagrid frame 框架
var dgframe = document.createElement("DIV");
dgframe.id = this.rid;
dgframe.onmousedown = function(e){e=e ¦ ¦window.event;getrow(e);}
dgframe.onmousemove = function(e){e=e ¦ ¦window.event;rsc_m(e);}
if(document.attachEvent){
document.attachEvent("onmouseup",rsc_u);
}else{
document.addEventListener("mouseup",rsc_u,false);
}
dgframe.oncontextmenu = function(){return false}
dgframe.onselectstart = function(){return false}
ae(dgframe);
------------------------------------------------------------------------------------
= =o
不是单一的添加删除啊...汗...是我贴上面的代理那里增加个添加,删除,修改,的事件啊.晕.谢谢楼上的两位
------------------------------------------------------------------------------------
<!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 >
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" / >
<title >无标题文档 </title >
</head >
<body >
<table width="200" border="1" id="tab" >
</table >
<button onclick="AddCheckBoxRow()" >添加行 </button >
<button onclick="Dele()" >删除选中行 </button >
</body >
<script type="text/javascript" >
var tab=document.getElementById("tab");
function AddCheckBoxRow(){
var cb=document.createElement("input");
cb.type="checkbox";
var tr=tab.insertRow(0);
var cell=tr.insertCell(0);
cell.appendChild(cb);
cb.Parent=tr;
tr.CB=cb;
}
function Dele(){
var i=0;
while(i <tab.rows.length){
if(tab.rows[i].CB.checked==true){
tab.deleteRow(i);
i--;
}
i++;
}
}
</script >
</html >
------------------------------------------------------------------------------------
insertRow
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
饿...增加删除的问题解决了.
但是如何插入到页面的元素中出大问题了
插到网页的任何元素都会IE doucument出错终止程序.只有插在body内不会出错.
找了些资料说是初始化未完成就被自定义转了值.
但是init方法不放在元素内的话那这就没意义了啊.
有谁对底层了解一点的吗?
------------------------------------------------------------------------------------
如果新手看了这些代码估计就怕怕了
------------------------------------------------------------------------------------
初学者做的 大家不要见笑哈
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML >
<HEAD >
<TITLE > New Document </TITLE >
<META NAME="Generator" CONTENT="EditPlus" >
<META NAME="Author" CONTENT="" >
<META NAME="Keywords" CONTENT="" >
<META NAME="Description" CONTENT="" >
<script language="javascript" >
var currenttr=null;
function fastupdate(src)
{
var value=src.innerHTML;
src.innerHTML=" <input type= "text " onkeydown= "if (event.keyCode==13){save(this);} " name= "newvalue " value= ""+value+" " onblur= "save(this) " >";
src.firstChild.select();
src.firstChild.focus();
}
function save(src)
{
var div=src.parentNode;
div.innerHTML=src.value;
}
function add(form)
{
var username=form.username.value;
var password=form.password.value;
if (username=="" ¦ ¦ password=="")
{
alert("请输入完整!");
return;
}
var table=document.getElementById("mytable");
var rowcount=table.rows.length;
table.insertRow(rowcount);
table.rows[rowcount].insertCell(0);
table.rows[rowcount].setAttribute("align","center");
table.rows[rowcount].cells[0].innerHTML=" <div onmouseover= "changecolor(this) " onDblClick= "fastupdate(this) " >"+username+" </div >";
table.rows[rowcount].insertCell(1);
table.rows[rowcount].cells[1].innerHTML=" <div onmouseover= "changecolor(this) " onDblClick= "fastupdate(this) " >"+password+" </div >";
table.rows[rowcount].insertCell(2);
table.rows[rowcount].cells[2].innerHTML=" <input type= "button " value= "删除 " onclick= "del(this) "/ >";
table.rows[rowcount].cells[2].innerHTML+=" <input type= "button " value= "更新 " onclick= "update(this) "/ >";
form.username.value="";
form.password.value="";
form.username.focus();
}
function del(src)
{
var tr=src.parentNode.parentNode;
var tbody=document.getElementById("mytable").firstChild;
tbody.removeChild(tr);
}
function update(src)
{
var tr=src.parentNode.parentNode;
var str=prompt("输入用户名和密码,以逗号分开!");
if (str!=null && str!="" && str!="undefined" && str.indexOf(",") >=0)
{
var arr=str.split(",");
usernametd=tr.firstChild;
passwordtd=tr.childNodes[1];
usernametd.innerHTML=" <div onmouseover= "changecolor(this) " onDblClick= "fastupdate(this) " >"+arr[0]+" </div >";
passwordtd.innerHTML=" <div onmouseover= "changecolor(this) " onDblClick= "fastupdate(this) " >"+arr[1]+" </div >";
}
}
function changecolor(src)
{
var tr=src.parentNode.parentNode;
if (currenttr!=null)
{
currenttr.style.background="#FFFFFF";
}
tr.style.background="#CCCCCC";
currenttr=tr;
}
</script >
</HEAD >
<BODY >
<form id="myfrom" >
用户名: <input type="text" onkeydown="if (event.keyCode==13) {password.focus();password.select()}" name="username"/ > <br/ >
密码: <input type="password" onkeydown="if (event.keyCode==13) btn.click();" name="password" > <br/ >
<input type="button" value="增加" name="btn" onclick="add(this.form)"/ >
</form >
<div align="center" >
<table border="1" cellpadding="0" cellspacing="0" width="70%" id="mytable" >
<tr >
<th >用户名 </th >
<th >密码 </th >
<th >操作 </th >
</tr >
</table >
</div >
</BODY >
</HTML >
------------------------------------------------------------------------------------
关注ing
------------------------------------------------------------------------------------
......冷清啊
------------------------------------------------------------------------------------
完整的代码控件三个回贴拼起来.
AddRow()是我自己写的,但是完全没有达到按照表格自身模式添加新一行.
希望哪个牛人帮忙看看要怎么改...
------------------------------------------------------------------------------------
dataobj.rows[eprowindex].className = "selectedrow";
nowrow = eprowindex;
}
}
}
//更改列宽
t s.rsc_d = function(e,obj){
var px = document.all?e.offsetX:e.layerX-obj.offsetLeft;
if(px >obj.offsetWidth-6 && px <obj.offsetWidth){
e=e ¦ ¦window.event;
obj=obj ¦ ¦t s;
ml = e.clientX;
ow = obj.offsetWidth;
tdobj = obj;
if(obj.setCapture){
obj.setCapture();
}else{
e.preventDefault();
}
}else{
if(nowrow!=null){
dataobj.rows[nowrow].className = "";
}
if(obj.getAttribute("sort")==null){
obj.setAttribute("sort",0);
}
var sort = obj.getAttribute("sort");
if(sort==1){
dgsort(obj,true);
obj.setAttribute("sort",0);
}else{
dgsort(obj,false);
obj.setAttribute("sort",1);
}
obj.className = "sortdown";
}
}
t s.mouseup = function(obj){
obj.className = "over";
}
function rsc_m(e){
if(tdobj!=null){
e=e ¦ ¦window.event;
var newwidth = ow-(ml-e.clientX);
if(newwidth >5){
tdobj.style.width = newwidth;
dataobj.rows[0].cells[tdobj.cellIndex].style.width = newwidth;
}else{
tdobj.style.width = 5;
dataobj.rows[0].cells[tdobj.cellIndex].style.width = 5;
}
dh.setwh();
scrh();
}
}
function rsc_u(e){
if(tdobj!=null){
e=e ¦ ¦window.event;
var newwidth = ow-(ml-e.clientX);
if(newwidth >5){
tdobj.style.width = newwidth;
dataobj.rows[0].cells[tdobj.cellIndex].style.width = newwidth;
}else{
tdobj.style.width = 5;
dataobj.rows[0].cells[tdobj.cellIndex].style.width = 5;
}
if(tdobj.releaseCapture){
tdobj.releaseCapture();
}
ml = 0;
ow = 0;
tdobj = null;
}
dh.setwh();
scrh();
}
t s.cc = function(e,obj){
var px = document.all?e.offsetX:e.layerX-obj.offsetLeft;
if(px >obj.offsetWidth-6 && px <obj.offsetWidth){
obj.style.cursor = "col-resize";
}else{
obj.style.cursor = "default";
}
}
t s.over = function(obj){
obj.className = "over";
}
t s.out = function(obj){
obj.className = "column";
}
t s.dataover = function(obj){
if(obj.rowIndex!=nowrow){
obj.className = "dataover";
}
}
t s.dataout = function(obj){
if(obj.rowIndex!=nowrow){
obj.className = "";
}
}
//键盘Up & Down事件
function updown(e){
e=e ¦ ¦ window.event; e=e.w ch ¦ ¦ e.keyCode;
var rl = dh.data.length;
switch(e){
case 38://Up;
if(nowrow!=null && nowrow >1){
vbar.scrollTop -= 18;
dataobj.rows[nowrow].className = "";
nowrow -= 1;
dataobj.rows[nowrow].className = "selectedrow";
};
break;
case 40://Down;
if(nowrow!=null && nowrow <rl){
vbar.scrollTop += 18;
dataobj.rows[nowrow].className = "";
nowrow += 1;
dataobj.rows[nowrow].className = "selectedrow";
};
break;
default:break;
}
}
function dti(s){
var n = 0;
var a = s.match(//d+/g);
for(var i=0;i <a.length;i++){
if(a[i].length <2){
a[i] = "0"+a[i];
}
}
n = a.join("");
return n;
}
//排序
function dgsort(obj,asc){
var rl = dh.data.length;
var ci = obj.cellIndex;
var rowsobj = [];
for(var i=1;i <dataobj.c ldNodes[0].rows.length;i++){
rowsobj[i-1] = dataobj.c ldNodes[0].rows[i];
}
rowsobj.sort(function(trObj1,trObj2){
if(!isNaN(trObj1.cells[ci].innerHTML.charAt(0)) && !isNaN(trObj2.cells[ci].innerHTML.charAt(0))){
if(asc){
return dti(trObj1.cells[ci].innerHTML)-dti(trObj2.cells[ci].innerHTML);
}else{
return dti(trObj2.cells[ci].innerHTML)-dti(trObj1.cells[ci].innerHTML);
}
}else{
if(asc){
return trObj1.cells[ci].innerHTML.localeCompare(trObj2.cells[ci].innerHTML);
}else{
return trObj2.cells[ci].innerHTML.localeCompare(trObj1.cells[ci].innerHTML);
}
}
});
for(var i=0;i <rowsobj.length;i++){
dataobj.c ldNodes[0].appendC ld(rowsobj[i]);
}
for(var c=1;c <obj.parentNode.cells.length-1;c++){
obj.parentNode.cells[c].c ldNodes[1].innerHTML = "";
}
if(asc){
obj.c ldNodes[1].innerHTML = "▲";
}else{
obj.c ldNodes[1].innerHTML = "▼";
}
}
}
function AddRow(){
var tab=document.getElementById("datacolumn");
var cb=document.createElement("input");
cb.type="checkbox";
var tr=tab.insertRow(0);
var cell=tr.insertCell(0);
cell.appendC ld(cb);
cb.Parent=tr;
tr.CB=cb;
}
</script >
</head >
<body style="background:#ECE9D8;" >
<form name="form1" method="post" action="" >
<button onclick="AddRow()" >添加行 </button >
</form >
<script language="javascript" >
var dhdg = new dhdatagrid();
dhdg.callname = "dhdg";
dhdg.columns = ["1","2","3"];
dhdg.data = [["000","5555","2006-12-6 17:06"],["22","333","444"]];
dhdg.dblclick_fun = function(e){alert(e+ ",ondblclick ");}
dhdg.contextmenu_fun = function(e){alert(e+ ",oncontextmenu ");}
dhdg.init();
dhdg.setwh();
</script >
</body >
</html >
------------------------------------------------------------------------------------
up
------------------------------------------------------------------------------------
//dhdatagrid zero point 零点
var dgzero = " <div id=/"zero/" > </div >"
//dhdatagrid slidecolumn 第一列
var dgslide = " <table cellpadding=/"0/" cellspacing=/"0/" id=/"slidecolumn/" >"+dgs+" </table >";
//dhdatagrid column 标题栏
var dgcolumn = " <table cellpadding=/"0/" cellspacing=/"0/" id=/"titlecolumn/" >"+dgc+" </table >";
//dhdatagrid data 数据
var dgdata = " <table cellpadding=/"0/" cellspacing=/"0/" id=/"datacolumn/" >"+dgc+dgd+" </table >";
//dhdatagrid hbar 水平滚动条
var dghbar = document.createElement("DIV");
dghbar.id = "hbar";
dghbar.style.position = "absolute";
dghbar.style.width = "100%";
dghbar.style.height = "17px";
dghbar.style.top = this.height-17;
dghbar.style.overflowX = "auto";
dghbar.style.zIndex = "10";
dghbar.onscroll = function(){scrh();}
dghbar.innerHTML = " <div style=/"width:100%;height:1px;overflow-y:hidden;/" > </div >";
//dhdatagrid vbar 垂直滚动条
var dgvbar = document.createElement("DIV");
dgvbar.id = "vbar";
dgvbar.style.position = "absolute";
dgvbar.style.width = "17px";
dgvbar.style.height = "100%";
dgvbar.style.left = this.width-17;
dgvbar.style.overflowY = "auto";
dgvbar.style.zIndex = "10";
dgvbar.onscroll = function(){scrv();}
dgvbar.innerHTML = " <div style=/"width:1px;height:100%;overflow-x:hidden;/" > </div >";
//dhdatagrid bgbar 滚动条背景
var dgbgbar = document.createElement("DIV");
dgbgbar.id = "bgbar";
dgbgbar.style.background = "buttonface";
dgbgbar.style.position = "absolute";
dgbgbar.style.width = "100%";
dgbgbar.style.height = "17px";
dgbgbar.style.top = this.height-17;
dgbgbar.style.overflowX = "auto";
dgbgbar.style.zIndex = "9";
dgbgbar.style.display = "none";
dgbgbar.innerHTML = " ";
//appendChild
dgframe.innerHTML = dgzero+dgslide+dgcolumn+dgdata;
dgframe.appendChild(dghbar);
dgframe.appendChild(dgvbar);
dgframe.appendChild(dgbgbar);
this.parentNode.appendChild(dgframe);
if(document.attachEvent){
document.attachEvent("onkeydown",updown);
}else{
document.addEventListener("keydown",updown,false);
}
framediv = dgframe;
zerobj = document.getElementById("zero");
leftobj = document.getElementById("slidecolumn");
titleobj = document.getElementById("titlecolumn");
dataobj = document.getElementById("datacolumn");
hbar = dghbar;
vbar = dgvbar;
bgbar = dgbgbar;
var btt = getCurrentStyle(framediv,"borderTopWidth");
var btr = getCurrentStyle(framediv,"borderRightWidth");
var btb = getCurrentStyle(framediv,"borderBottomWidth");
var btl = getCurrentStyle(framediv,"borderLeftWidth");
var fh = getCurrentStyle(framediv,"height");
var zh = getCurrentStyle(zerobj,"height");
var zbt = getCurrentStyle(zerobj,"borderTopWidth");
var zbb = getCurrentStyle(zerobj,"borderBottomWidth");
if(document.all){
vbar.style.left = parseInt(vbar.style.left)-parseInt(btr)-parseInt(btl);
}else{
framediv.style.height = parseInt(fh)-parseInt(btb)-parseInt(btt);
zerobj.style.height = parseInt(zh)-parseInt(zbb)-parseInt(zbt);
}
hbar.style.top = parseInt(hbar.style.top)-parseInt(btb)-parseInt(btt);
bgbar.style.top = parseInt(bgbar.style.top)-parseInt(btb)-parseInt(btt);
}
function getCurrentStyle(oElement, sProperty) {
if(oElement.currentStyle){
return oElement.currentStyle[sProperty];
}else if(window.getComputedStyle){
sProperty = sProperty.replace(/([A-Z])/g, "-$1").toLowerCase();
return window.getComputedStyle(oElement, null).getPropertyValue(sProperty);
}else{
return null;
}
}
//设置块滚动条
this.setwh = function(){
hbar.style.display = "block";
vbar.style.display = "block";
hbar.childNodes[0].style.width = dataobj.offsetWidth;
vbar.childNodes[0].style.height = dataobj.offsetHeight;
if(hbar.childNodes[0].offsetWidth <=hbar.offsetWidth){
hbar.style.display = "none";
}else{
hbar.style.display = "block";
}
if(vbar.childNodes[0].offsetHeight <=vbar.offsetHeight){
vbar.style.display = "none";
}else{
vbar.style.display = "block";
}
if(hbar.childNodes[0].offsetWidth >hbar.offsetWidth && vbar.childNodes[0].offsetHeight >vbar.offsetHeight && changeposv){
bgbar.style.display = "block";
hbar.style.width = hbar.offsetWidth-17;
vbar.style.height = vbar.offsetHeight-17;
vbar.childNodes[0].style.height = vbar.childNodes[0].offsetHeight+17;
changeposv = false;
}
if(hbar.childNodes[0].offsetWidth <=hbar.offsetWidth+17 && !changeposv){
bgbar.style.display = "none";
hbar.childNodes[0].style.width = 0;
hbar.style.width = hbar.offsetWidth+17;
vbar.style.height = vbar.offsetHeight+17;
changeposv = true;
if(vbar.offsetHeight-dataobj.offsetHeight >dataobj.offsetTop && document.all){
leftobj.style.top = leftobj.offsetTop+17;
dataobj.style.top = dataobj.offsetTop+17;
}
}
}
//鼠标滚轮,列表滚动事件
function mwEvent(e){
e=e ¦ ¦window.event;
if(e.wheelDelta <=0 ¦ ¦ e.detail >0){
vbar.scrollTop += 18;
}else {
vbar.scrollTop -= 18;
}
}
function ae(obj){
if(document.attachEvent){
obj.attachEvent("onmousewheel",mwEvent);
}else{
obj.addEventListener("DOMMouseScroll",mwEvent,false);
}
}
//滚动条事件
function scrv(){
leftobj.style.top = -(vbar.scrollTop);
dataobj.style.top = -(vbar.scrollTop);
}
function scrh(){
titleobj.style.left = -(hbar.scrollLeft);
dataobj.style.left = -(hbar.scrollLeft);
}
//选择行
function getrow(e){
e=e ¦ ¦window.event;
var esrcobj = e.srcElement?e.srcElement:e.target;
if(esrcobj.parentNode.tagName=="TR"){
var epobj = esrcobj.parentNode;
var eprowindex = epobj.rowIndex;
if(eprowindex!=0){
if(nowrow!=null){
dataobj.rows[nowrow].className = "";
}
------------------------------------------------------------------------------------
<html >
<head >
<meta http-equiv="content-type" content="type=text/html; charset=gb2312" >
<style type="text/css" >
/*dhdatagrid 大块样式*/
#dhdatagrid {position:relative;width:500px;height:200px;background:white;margin:0px;padding:0px;overflow:hidden;border:1px inset;-moz-user-select:none;}
/*dhdatagrid 表格全局样式*/
#dhdatagrid table {table-layout:fixed;margin:0px;}
#dhdatagrid table td {height:18px;cursor:default;font-size:12px;font-family:verdana;overflow:hidden;white-space:nowrap;text-indent:2px;border-right:1px solid buttonface;border-bottom:1px solid buttonface;}
#dhdatagrid table td .arrow {font-size:8px;color:#808080;}
#dhdatagrid table .lastdata {border-right:none;}
#dhdatagrid table .column {width:120px;cursor:default;background:buttonface;border-top:1px solid #fff;border-right:1px solid #404040;border-bottom:1px solid #404040;border-left:1px solid #fff;}
#dhdatagrid table .over {width:120px;cursor:default;background:buttonface;border-top:1px solid #fff;border-right:1px solid #404040;border-bottom:1px solid #404040;border-left:1px solid #fff;}
#dhdatagrid table .sortdown {width:120px;cursor:default;background:buttonface;border-right:1px solid #ffffff;border-bottom:1px solid #ffffff;border-left:1px solid #404040;border-top:1px solid #404040;position:relative;left:1px;}
#dhdatagrid table .dataover {background:#FAFAFA;}
#dhdatagrid table .firstcolumn {width:30px;text-indent:0px;text-align:center;background:buttonface;border-top:1px solid #fff;border-right:1px solid #404040;border-bottom:1px solid #404040;border-left:1px solid #fff;}
#dhdatagrid table .lastcolumn {background:buttonface;border-top:1px solid #fff;border-right:1px solid #404040;border-bottom:1px solid #404040;border-left:1px solid #fff;}
/*dhdatagrid 选定行样式*/
#dhdatagrid table .selectedrow {background:highlight;color:white;}
/*dhdatagrid 表头样式*/
#dhdatagrid #titlecolumn {width:100%;position:absolute;top:0px;left:0px;z-index:3;}
/*dhdatagrid 左边栏样式*/
#dhdatagrid #slidecolumn {width:30px;position:absolute;top:0px;left:0px;z-index:2;}
#dhdatagrid #slidecolumn td {width:30px;text-indent:0px;text-align:center;background:buttonface;border-top:1px solid #fff;border-right:1px solid #404040;border-bottom:1px solid #404040;border-left:1px solid #fff;}
/*dhdatagrid 内容表体样式*/
#dhdatagrid #datacolumn {width:100%;position:absolute;top:0px;left:0px;}
/*dhdatagrid 原点样式*/
#dhdatagrid #zero {width:30px;height:18px;margin:0px;padding:0px;position:absolute;top:0px;left:0px;z-index:10;background:buttonface;border-top:1px solid #fff;border-right:1px solid #404040;border-bottom:1px solid #404040;border-left:1px solid #fff;text-align:center;font-size:10px;color:#A19F92;}
</style >
<script language="javascript" >
function dhdatagrid(){
//author:dh20156;
this.callname = "dhdg";
this.width = 500;
this.height = 200;
this.rid = "dhdatagrid";
this.columns = [];
this.data = [];
this.dblclick_fun = function(){}
this.contextmenu_fun = function(){}
this.parentNode = document.body;
var dh = this;
var framediv = null;
var zerobj = null;
var leftobj = null;
var titleobj = null;
var dataobj = null;
var hbar = null;
var vbar = null;
var bgbar = null;
//改变列宽初始位置
var ml = 0;
//改变列宽对象初始宽度
var ow = 0;
//改变列宽对象
var tdobj = null;
//当前选定行索引
var nowrow = null;
//是否更改垂直滚动条位置
var changeposv = true;
this.init = function(){
//init the data 初始数据
var dgc = "";
if(this.columns.length >0){
dgc = " <tr > <td class=/"firstcolumn/" > </td >";
for(var cc=0;cc <this.columns.length;cc++){
dgc += " <td class=/"column/" onmouseover=/""+this.callname+".over(this);/" onmouseout=/""+this.callname+".out(this);/" onmousemove=/""+this.callname+".cc(event,this);/" onmousedown=/""+this.callname+".rsc_d(event,this);/" onmouseup=/""+this.callname+".mouseup(this);/" >"+this.columns[cc]+" <span class=/"arrow/" > </span > </td >";
}
dgc += " <td class=/"lastcolumn/" > </td > </tr >";
}
var dgs = "";
var dgd = "";
if(this.data.length >0){
//第一列
dgs = " <tr > <td > </td > </tr >";
for(var r=0;r <this.data.length;r++){
dgs += " <tr > <td >"+(r+1)+" </td > </tr >";
dgd += " <tr onmouseover=/""+this.callname+".dataover(this);/" onmouseout=/""+this.callname+".dataout(this);/" > <td class=/"firstcolumn/" > </td >";
for(var c=0;c <this.data[r].length;c++){
dgd += " <td ondblclick=/""+this.callname+".dblclick_fun(this);/" oncontextmenu=/""+this.callname+".contextmenu_fun(this);/" >"+this.data[r][c]+" </td >";
//alert(this.data[r][c]);
}
dgd += " <td class=/"lastdata/" > </td > </tr >";
}
if(dgc==""){
dgc = " <tr > <td class=/"firstcolumn/" > </td >";
for(var dc=0;dc <this.data[0].length;dc++){
dgc += " <td class=/"column/" onmouseover=/""+this.callname+".over(this);/" onmouseout=/""+this.callname+".out(this);/" onmousemove=/""+this.callname+".cc(event,this);/" onmousedown=/""+this.callname+".rsc_d(event,this);/" onmouseup=/""+this.callname+".mouseup(this);/" >Expr"+(dc+1)+" <span class=/"arrow/" > </span > </td >";
}
dgc += " <td class=/"lastcolumn/" > </td > </tr >";
}
}
//dhdatagrid frame 框架
var dgframe = document.createElement("DIV");
dgframe.id = this.rid;
dgframe.onmousedown = function(e){e=e ¦ ¦window.event;getrow(e);}
dgframe.onmousemove = function(e){e=e ¦ ¦window.event;rsc_m(e);}
if(document.attachEvent){
document.attachEvent("onmouseup",rsc_u);
}else{
document.addEventListener("mouseup",rsc_u,false);
}
dgframe.oncontextmenu = function(){return false}
dgframe.onselectstart = function(){return false}
ae(dgframe);
------------------------------------------------------------------------------------
= =o
不是单一的添加删除啊...汗...是我贴上面的代理那里增加个添加,删除,修改,的事件啊.晕.谢谢楼上的两位
------------------------------------------------------------------------------------
<!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 >
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" / >
<title >无标题文档 </title >
</head >
<body >
<table width="200" border="1" id="tab" >
</table >
<button onclick="AddCheckBoxRow()" >添加行 </button >
<button onclick="Dele()" >删除选中行 </button >
</body >
<script type="text/javascript" >
var tab=document.getElementById("tab");
function AddCheckBoxRow(){
var cb=document.createElement("input");
cb.type="checkbox";
var tr=tab.insertRow(0);
var cell=tr.insertCell(0);
cell.appendChild(cb);
cb.Parent=tr;
tr.CB=cb;
}
function Dele(){
var i=0;
while(i <tab.rows.length){
if(tab.rows[i].CB.checked==true){
tab.deleteRow(i);
i--;
}
i++;
}
}
</script >
</html >
------------------------------------------------------------------------------------
insertRow
------------------------------------------------------------------------------------
- 关于表格事件(转)
- 关于表格控件的OnDrawCell事件
- 关于Gridview表格中的按钮事件
- 关于表格td点击事件的监听
- 关于表格双击事件的实现 – DWZ框架
- 关于表格双击事件的实现 – DWZ框架
- 关于表格双击事件的实现 – DWZ框架
- JAVA JTable 关于表格初始化设置、表格事件监听及数据更新问题
- bootstrap-table表格事件
- 表格模型事件Java
- (转)ExtJs表格
- 关于C#,ASP.NET 生成Excel表格的两种方式(Datatable转Excel)
- 表格点击事件_事件响应函数
- 动态添加表格(增加事件)
- Java表格模型事件示例
- ALV表格数据双击事件
- 代码触发表格编辑事件
- 表格单元格增加hover事件
- 用JSON技术加快AJAX程序开发(转)
- 要期末考试咯。。
- 用JSON处理缓存!
- C语言笔试大全
- c++的学习建议
- 关于表格事件(转)
- directshow之vs2005配置
- 经典笔试题目
- 开发端到端的Ajax应用程序(转)
- 小心,朝鲜兄弟来了!
- 为一个梦
- 梁肇新《编程高手箴言》读书笔记(一)
- 2007 IT市场十大事件
- zlib