对应的js:

        function pccAddSignRow() { //读取最后一行的行号,存放在LearnTRLastIndex文本框中
var pccTRLastIndex = findObj("pccTRLastIndex", document);
var rowID = parseInt(pccTRLastIndex.value);
var signFrame = findObj("pcc", document);
//添加行
var newTR = signFrame.insertRow(signFrame.rows.length);
newTR.id = "pccItem" + rowID; //添加列:产品名称 //添加列内容
var h = '<option >请选择省</option>';
var id = 1;
var io = "txtPro" + rowID;
var tio = "txtCity" + rowID;
var oio = "txtCounty" + rowID;
callBizAPI("AddProvince", {//调用ajax获取数据
id: id
}, function (result) {//得到结果后:
for (var i in result) {
var iif = result[i].AreaId;
var ifro = result[i].AreaName;
h += '<option value="' + iif + '">' + ifro + '</option>';
} var newNameTD = newTR.insertCell(0);
newNameTD.innerHTML = "<select class=\"txtW95\" id='txtPro" + rowID + "' onchange=\"addcityCopy('" + io + "','" + rowID + "')\" >'" + h + "'</select>";
//添加列:说明
var newNameTD = newTR.insertCell(1);
//添加列内容
newNameTD.innerHTML = "<select class=\"txtW95\" id='" + tio + "' onchange=\"addcountyCopy('" + tio + "','" + rowID + "')\" ></select>";
var newNameTD = newTR.insertCell(2);
//添加列内容
newNameTD.innerHTML = "<select class=\"txtW95\" id='txtCounty" + rowID + "'></select>"; //添加列:操作按钮
var newDeleteTD = newTR.insertCell(3);
//添加列内容 <button class='toolbtn' id='add" + rowID + "' onclick=\"pccAddSignRow()\"><img src='images/plus.png' />添加</button> 
if (iii >= 2) {
var currentBtn = document.getElementById("add0");
currentBtn.style.display = "none";
  newDeleteTD.innerHTML = "<button class='toolbtn' onclick=\"pccDeleteRow('pccItem" + rowID + "')\" ><img src='images/del.png'/>删除</button>"
}
else {
newDeleteTD.innerHTML = "<button class='toolbtn' onclick=\"pccDeleteRow('pccItem" + rowID + "')\" ><img src='images/del.png'/>删除</button>"
} //将行号推进下一行
pccTRLastIndex.value = (rowID + 1).toString();
}
) }
function pccDeleteRow(rowid) {
var signFrame = findObj("pcc", document);
var signItem = findObj(rowid, document); //获取将要删除的行的Index
var rowIndex = signItem.rowIndex; //删除指定Index的行
signFrame.deleteRow(rowIndex);
var currentBtn = document.getElementById("add0");
currentBtn.removeAttribute("style"); }
function findObj(theObj, theDoc) {
var p, i, foundObj;
if (!theDoc) theDoc = document;
if ((p = theObj.indexOf("?")) > 0 && parent.frames.length) {
theDoc = parent.frames[theObj.substring(p + 1)].document;
theObj = theObj.substring(0, p);
}
if (!(foundObj = theDoc[theObj]) && theDoc.all)
foundObj = theDoc.all[theObj];
for (i = 0; !foundObj && i < theDoc.forms.length; i++)
foundObj = theDoc.forms[i][theObj];
for (i = 0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++)
foundObj = findObj(theObj, theDoc.layers[i].document);
if (!foundObj && document.getElementById)
foundObj = document.getElementById(theObj);
return foundObj;
}

对应的aspx:

<table cellpadding="0" cellspacing="0" border="0" align="center" class="tab_add" id="pcc">
<tr>
<th>省(直辖市)</th>
<th>市</th>
<th>县(区)</th>
<th>操作</th>
</tr>//设置第一行要显示的东西
<tr>
<td>
<select id="province" class="txtW95" onchange="addCity();">
<option value="">请选择省</option>
<%foreach (var item in base.DataProvider.CountyOrArea.Where(t => t.SuperiorEncoding == "").OrderBy(t => t.AreaCode))
{%>//服务端填充下拉框的项
<option value="<%=item.AreaId %>"><%=item.AreaName %></option>
<%} %>
</select>
</td>
<td>
<select id="city" class="txtW95" onchange="addCounty();">
</select></td>
<td>
<select id="county" class="txtW95">
</select></td>
<td style="width: 25%">
<button class="toolbtn" id="add0" onclick="pccAddSignRow();">
<img src="data:images/plus.png" />添加</button>
                <button class="toolbtn" onclick="cpDeleteRow('cpItem0');">
<img src="data:images/del.png" />删除</button>
                <input name='pccTRLastIndex' type='hidden' id='pccTRLastIndex' value="1" />//隐藏记录行号
              </td>
</tr> </table>

  

JS控制的动态表格的更多相关文章

  1. JS中的动态表格

    写法一:(有点啰嗦) //--------------XML DOM--------------------------------------function addTR(){ //1.取三个框的值 ...

  2. [JS前端开发] js/jquery控制页面动态加载数据 滑动滚动条自动加载事件

    页面滚动动态加载数据,页面下拉自动加载内容 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样的效果:进入qq空间,向下拉动空 ...

  3. js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的

    js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样 ...

  4. [JS前端开发] js/jquery控制页面动态载入数据 滑动滚动栏自己主动载入事件

    本人小菜鸟一仅仅.为了自我学习和交流PHP(jquery,linux,lamp,shell,javascript,server)等一系列的知识,小菜鸟创建了一个群.希望光临本博客的人能够进来交流.寻求 ...

  5. js如何实现动态的在表格中添加和删除行?(两种方法)

    js如何实现动态的在表格中添加和删除行?(两种方法) 一.总结 1.table元素有属性和一些方法(js使用) 方法一:添加可通过在table的innerHTML属性中添加tr和td来实现 tab.i ...

  6. js如何实现动态克隆一个表格?

    js如何实现动态克隆一个表格? 一.总结 1.通过innerHTML实现表格内容复制, 2.通过表格dom的属性(比如border)实现属性赋值, 3.通过表格dom的样式style实现样式的复制. ...

  7. js如何实现动态在表格中添加标题和去掉标题?

    js如何实现动态在表格中添加标题和去掉标题? 一.总结 1.通过table标签的createCaption(),deleteCaption()方法实现. document.getElementById ...

  8. js的动态表格的增删改查思路

    1. 首先我们要知道,动态添加,肯定不是 在页面上写死得,而是通过js调用循环放入到页面上的,我们在写动态表格的时候不要先着急写,我们第一步要做的就是构思,要把自己的逻辑先弄清楚,不然的话,前面是好写 ...

  9. JS 创建动态表格练习

    创建动态表格 1.1 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...

随机推荐

  1. Python:list用法

    list是一种有序的集合,可以随时添加和删除其中的元素. 定义 空list >>> a_list=[] >>> a_list [] 普通 >>> ...

  2. java selenium (九) 常见web UI 元素操作 及API使用

    本篇介绍我们如何利用selenium 来操作各种页面元素 阅读目录  链接(link) <div> <p>链接 link</p> <a href=" ...

  3. wampServer安装注意

    http://www.glbwl.com/wampServer-403-forbidden.html http://jingyan.baidu.com/article/e75aca8578147d14 ...

  4. hadoop3.0 alpha1 安装配置

    1. 官网下载 wget  http://apache.fayea.com/hadoop/common/hadoop-3.0.0-alpha1/hadoop-3.0.0-alpha1.tar.gz 2 ...

  5. Lex&Yacc Parser错误发生后再次parser之前恢复初始状态

    使用lex yacc 对文件进行parser时,如果文件内容有错,parser报错,然后你修改了文件,再次读入文件进行parser,如果你不是重启程序进行parser,那就需要对做些处理了. &quo ...

  6. python网络编程【三】(网络服务器)

    建立一个服务器需要以下4步: 1.建立socket对象. 2.设置socket选项(可选的) 3.绑定到一个端口(同样,也可以是一个指定的网卡). 4.侦听连接. 下面代码片段可以实现这些功能: ho ...

  7. 关于Thinkphp Upload类

    $this->uploads($picurl); public function uploads($picurl) { $config = array( 'maxSize' => 3145 ...

  8. -canOpenURL: failed for URL: "" - error: "(null)" , iOS9 App传输安全 支持http 解决方案

    -canOpenURL: failed for URL: "CamCardHDOpenAPI:*" - error: "(null)" This app is ...

  9. 不安装HALCON下安装运行版U盘加密狗驱动

    参考halcon安装指导书 Installation Guide Depending on your operating system, you can install, configure, and ...

  10. SQL IF ELSE

    if (条件)    begin        (执行模块)    endelse if (条件)    begin        (执行模块)    endelse    begin        ...