今天遇到一个问题,如何通过JS生成表格。
解决方案如下:
//创建新表
function CreateTable() {
var table = document.getElementById('Newtb');
var NewRow = table.insertRow();
NewRow.id = createId(); //新建ID
var taskId = table.rows.length - 1;
var cell2 = NewRow.insertCell();
cell2.innerHTML = '<input type="hidden" id ="hdf+ NewRow.id + '" name ="hdf" value="' + NewRow.id + '" >'
如果需要换行,以便代码更加清晰。采用如下方式:通过+拼接起来。
+' <div style="border: 1px solid #1862A1; margin-top: 20px">'
需要做的是在innerhtml 中,通过''将HTML内容括起来。。然后每个控件的ID和NAME不一样,这就必须为每一个控件弄个新ID
}
//创建无重复的ID
function createId() {
return Math.round(Math.random() * 1000000);
}
2:如果我们对生成的表格不满意,我们可以通过第一行的隐藏域来删除它。
代码如下:
function del(id) {
var table = document.getElementById("'Newtb'");
var flag = 0;
for (i = 0; i <= table.rows.length; i++) {
if (document.getElementsByName("hdf")[i].value == id) {
document.getElementById('<%=delTable.ClientID%>').value = document.getElementById('<%=delTable.ClientID%>').value + id + '\,';
table.deleteRow(i);
flag = i;
break;
}
}
}
这里需要创建一个delTable的隐藏域。
然后进行保存之类的。。。
后台循环添加新表通过:Literal进行展现。
使用 StringBuilder,添加数据。。