JS控制的动态表格
对应的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控制的动态表格的更多相关文章
- JS中的动态表格
写法一:(有点啰嗦) //--------------XML DOM--------------------------------------function addTR(){ //1.取三个框的值 ...
- [JS前端开发] js/jquery控制页面动态加载数据 滑动滚动条自动加载事件
页面滚动动态加载数据,页面下拉自动加载内容 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样的效果:进入qq空间,向下拉动空 ...
- js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样 ...
- [JS前端开发] js/jquery控制页面动态载入数据 滑动滚动栏自己主动载入事件
本人小菜鸟一仅仅.为了自我学习和交流PHP(jquery,linux,lamp,shell,javascript,server)等一系列的知识,小菜鸟创建了一个群.希望光临本博客的人能够进来交流.寻求 ...
- js如何实现动态的在表格中添加和删除行?(两种方法)
js如何实现动态的在表格中添加和删除行?(两种方法) 一.总结 1.table元素有属性和一些方法(js使用) 方法一:添加可通过在table的innerHTML属性中添加tr和td来实现 tab.i ...
- js如何实现动态克隆一个表格?
js如何实现动态克隆一个表格? 一.总结 1.通过innerHTML实现表格内容复制, 2.通过表格dom的属性(比如border)实现属性赋值, 3.通过表格dom的样式style实现样式的复制. ...
- js如何实现动态在表格中添加标题和去掉标题?
js如何实现动态在表格中添加标题和去掉标题? 一.总结 1.通过table标签的createCaption(),deleteCaption()方法实现. document.getElementById ...
- js的动态表格的增删改查思路
1. 首先我们要知道,动态添加,肯定不是 在页面上写死得,而是通过js调用循环放入到页面上的,我们在写动态表格的时候不要先着急写,我们第一步要做的就是构思,要把自己的逻辑先弄清楚,不然的话,前面是好写 ...
- JS 创建动态表格练习
创建动态表格 1.1 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...
随机推荐
- JAVA 多线程随笔 (二) sleep, yield, join, wait 和notify
这里先说明一下锁对象,如果一个类比如Person里的方法都有synchronized来修饰,那么每一个方法的锁对象就是Person的一个实例person. 锁对象也可以针对某个特定的实例, 比如syn ...
- WINDOWS下如何安装GCC(转载http://nirvana.cublog.cn;作者:北斗星君(黄庠魁))
第一章 在视窗操作系统下的GCC 第一节 GCC家族概览 GCC 是一个原本用于 Unix-like 系统下编程的编译器.不过,现在 GCC 也有了许多 Win32 下的移植版本.所以,也许对于许多 ...
- asp.net c#过滤html代码,净化DIV SPAN等
public static string GetSafeHtml(string val) { if (string.IsNullOrEmpty(val)) { return string.Empty; ...
- Linux开源系统对比Windows闭源系统的优势解析
当我们听到linux的时候是不是觉得高大上的感觉呢?在我刚上大学的时候,听着学长们给我讲他们的大学的学习经历,先学习C语言.单片机.然后做一些项目,现在正学习linux操作系统,当我听到linux操作 ...
- 【 2013 Multi-University Training Contest 8 】
HDU 4678 Mine 对于每个空白区域,求SG值. 最后异或起来等于0,先手必败. #pragma comment(linker,"/STACK:102400000,102400000 ...
- Android调用系统照相机
ndroid调用系统相机实现拍照功能 在实现拍照的功能时遇到了很多问题,搜索了很多资料,尝试了很多办法,终于解决了,下面简要的描述下在开发过程中遇到的问题. 虽然之前看过android开发的书,但是没 ...
- Bootstrap<基础四> 代码
Bootstrap 允许您以两种方式显示代码: 第一种是 <code> 标签.如果您想要内联显示代码,那么您应该使用 <code> 标签. 第二种是 <pre> 标 ...
- Haskell List相关操作
一.List中只能存放相同类型的元素. ++:将两个List合并成一个List.例,[1,2,3]++[4,5,6],结果是[1,2,3,4,5,6]. : :将“:”前面的元素添加到“:”后面的L ...
- android 混淆导致友盟反馈出错
最近混淆应用时出现了一个错误: 打包编译没问题,但程序运行之后,点击友盟的反馈就会导致程序报错: E/AndroidRuntime(7669): java.lang.RuntimeException ...
- http get/post解决乱码问题
<form method="默认为get"-> <s:form mothod="默认为post"-> ================= ...