您的位置:首页 > Web前端 > JavaScript

js根据选中的复选框删除相应的table行

2011-10-31 15:48 274 查看
今天花了大半天的时间,就完成了这个东东的添加和删除功能,由于没注意细节,调试了我许久!



单机 “添加”按钮,将会动态创建一个表格来呈现选择的人员数据,代码如下:

//创建选中人员
private void CreateSelectNodeInfo()
{
if (al.Count > 0)
{
Table tb = this.selectEmployeTable;
HtmlInputCheckBox cbox;
DropDownList ddl;
for (int i = 0; i < al.Count; i++)
{
TableRow tr = new TableRow();
TableCell tc1 = new TableCell();
cbox = new HtmlInputCheckBox();
cbox.ID = ("cbox" + i).ToString();
tc1.Controls.Add(cbox);
tr.Cells.Add(tc1);

TableCell tc2 = new TableCell();
tc2.Text = al[i].ToString();
tr.Cells.Add(tc2);

TableCell tc3 = new TableCell();
ddl = new DropDownList();
ddl.ID = ("ddl" + i).ToString();
ddl.DataSource = BindDdlData();
ddl.DataBind();
tc3.Controls.Add(ddl);
tr.Cells.Add(tc3);
tb.Rows.Add(tr);
this.pnlSelect.Controls.Add(tb);
}
}
}


单机“删除”按钮将会根据选中的复选框删除相应的行,这里的算法有点饶,我们知道当同时选中了几个复选框的时候,每遍历一次,就会从上至下删除一复选框标记的行,这样,table的行数就会减少一行,所以我们可以申明一个变量index来动态笔记table的行数变化,从而成功实现多行删除。代码如下:

function DelRow() {
var tb = document.getElementById("AddEmployee1_selectEmployeTable");
if (tb.hasChildNodes) {
var rowCount = tb.childNodes[0].childNodes.length;
var index = 0;
for (var i = 0; i < rowCount; i++) {
var child = tb.childNodes[0].childNodes[index];
index++;
var mark = child.childNodes[0].childNodes[0].checked;
if (mark) {
child.parentNode.removeChild(child);
index--;
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐