`
fosa0989
  • 浏览: 108519 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Javascript动态添加,删除表格行的例子

阅读更多
最近又开始做Web项目,完全又成新手了,几年前就没仔细看过Javascript,但又经常用,今天写了格动态添加删除表格行的例子。以后用的时候不要在到处查资料了。
JavaScript代码
 <script type="text/javascript">
    //添加行
function addRow(tTable,gid,name,desp){
	var newTr = tTable.insertRow();
	newTr.id="item"+gid;
	//添加列
	var newTd0 = newTr.insertCell();
	var newTd1 = newTr.insertCell();
	var newTd2 = newTr.insertCell();

	//设置列内容和属性 <input type="checkbox" name="user.newGroups" value="1" id="user_newGroups">
	newTd0.innerHTML = '<input type="checkbox" name="user.newGroups" value="'+gid+'" id="user_newGroups">'; 
	newTd1.innerText= name;
	newTd2.innerText= desp;
}
 //将可选列表中选中的条目添加到已选折组中	
 function addGroups()
 {
 	var fCheckBox=document.getElementById("form2").selectableGroups;
 	var fTab=document.getElementById("sTab");
 	var tTab=document.getElementById("nTab");
 
	for(i=fCheckBox.length-1;i>=0;i--){
		if(fCheckBox[i].checked==true)
		{ 
			var gid=fCheckBox[i].value;
			var item=document.getElementById('item'+gid);
			var name=item.cells(1).innerText;
			var desp=item.cells(2).innerText;
			
			fTab.deleteRow(i+2);
			addRow(tTab,gid,name,desp);			
		}
	} 	
 }
function addRow2(tTable,gid,name,desp){
	var newTr = tTable.insertRow();
	newTr.id="item"+gid;
	//添加列
	var newTd0 = newTr.insertCell();
	var newTd1 = newTr.insertCell();
	var newTd2 = newTr.insertCell();

	//设置列内容和属性 <input type="checkbox" name="selectableGroups" value="1" id="selectableGroups">
	newTd0.innerHTML = '<input type="checkbox" name="selectableGroups" value="'+gid+'" id="selectableGroups">'; 
	newTd1.innerText= name;
	newTd2.innerText= desp;
}
 function deleteGroups()
 {
 	var fCheckBox=document.getElementById("form2").user_newGroups;
 	var fTab=document.getElementById("nTab");
 	var tTab=document.getElementById("sTab");
 
	for(i=fCheckBox.length-1;i>=0;i--){
		if(fCheckBox[i].checked==true)
		{ 
			var gid=fCheckBox[i].value;
			var item=document.getElementById('item'+gid);
			var name=item.cells(1).innerText;
			var desp=item.cells(2).innerText;
			
			fTab.deleteRow(i+2);
			addRow2(tTab,gid,name,desp);			
		}
	} 	
 }
 function updateGroup()
 {
    var form2=document.getElementById("form2");
 	var fCheckBox=form2.user_newGroups;
 
	for(i=fCheckBox.length-1;i>=0;i--){
		fCheckBox[i].checked=true;
	} 	 
	form2.submit();
 }
 </script>
...
  <form id="form2" name="form2" method="post" action="<%=basePath%>updateUserGroup.action">  
  <input type="hidden" name="user.userID" value="<%=request.getAttribute(Constants.USER_OBJECT)%>">
  <table  width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
  <td colspan="3">基本信息&nbsp;&nbsp;用户组管理&nbsp;&nbsp;修改密码</td>
  </tr>
  <tr>
  	<td width="45%">
	<table id="sTab" width="100%" border="0" cellspacing="0" cellpadding="0">
	<tr><td colspan="3">可选用户组</td></tr>
	<tr><td>&nbsp;</td><td>名称</td><td>描述</td></tr>	
	<%List<Group> gList=(List<Group>)request.getAttribute(Constants.GROUP_LIST); 
     	Group g=null;
     	for(int i=0;i<gList.size();i++)
     	{
     	g=gList.get(i); %>
	<tr id="item<%=g.getGroupID()%>"><td><input type="checkbox" name="selectableGroups" value="<%=g.getGroupID()%>" id="selectableGroups"></td>
	<td><%=g.getName() %></td><td><%=g.getDescription() %></td></tr>	
	<%}%>
	</table> 	
  	</td>
  	<td width="10%" valign="middle" align="center">
  		<input type="Button" onClick="addGroups()" value="&gt;&gt;" name="addButton"><br><br>
  		<input type="Button" onClick="deleteGroups()" value="&lt;&lt;" name="deleteButton">
  	</td>
  	<td width="45%">
	<table id="nTab" width="100%" border="0" cellspacing="0" cellpadding="0">
	<tr><td colspan="3">已选用户组</td></tr>
	<tr><td>&nbsp;</td><td>名称</td><td>描述</td></tr>	
	<%gList=(List<Group>)request.getAttribute(Constants.USERGROUP_LIST); 
     	g=null;
     	for(int i=0;i<gList.size();i++)
     	{
     	g=gList.get(i); %>
	<tr><td><input type="checkbox" name="user.newGroups" value="<%=g.getGroupID()%>" id="user_newGroups"></td>
	<td><%=g.getName() %></td><td><%=g.getDescription() %></td></tr>	
	<%}%>
	</table> 	  	
  	</td>
  </tr>
  <tr>
  <td colspan="3" align="right"><input type="Button" name="gButton" value="保存" onClick="updateGroup()"></td>
  </tr>  	  
  </table>
  </form> 


用户和用户组是many-to-many关系设置成用户来管理关联关系
User.java中代码
	/**
	 * @return the groups
	 * User来管理关联关系,默认不抓取
	 * @hibernate.set table="TB_UserGroup" cascade="none" inverse="false" lazy="true" 
	 * @hibernate.collection-key column="UserID"
	 * @hibernate.collection-many-to-many column="GroupID" 
     *  class="com.sst.framework.administration.vo.Group" 
	 */
	public Set getGroups() {
		return groups;
	}

Group.java中代码
	/**
	 * @return the users
	 * User来管理关联关系,默认不抓取
	 * @hibernate.set table="TB_UserGroup" cascade="none" inverse="true" lazy="true" 
	 * @hibernate.collection-key column="GroupID"
	 * @hibernate.collection-many-to-many column="UserID" 
     *  class="com.sst.framework.administration.vo.User"
	 */
	public Set getUsers() {
		return users;
	}


对应的更新User-Group关系的Service代码
	public void updateUserGroup(Long userID, Long[] groups) {
		User u=(User)dao.getObject(User.class, userID);
		HashSet ps=new HashSet();
		if(groups!=null)
			for(int i=0;i<groups.length;i++){
				ps.add(new Group(groups[i]));
			}
		u.setGroups(ps);
		dao.saveObject(u);		
	}
3
1
分享到:
评论

相关推荐

    JavaScript实现添加及删除事件的方法小结

    JavaScript添加、删除事件的方法,也就是让某些方法生效指定次数,可以是一次、两次或更多次,但指定次数执行完毕后就删除该方法,使其失效,如果你经常从事JS编程,你就会知道这种功能用得比较多。 先来看看一个...

    JavaScript王者归来part.1 总数2

     12.5.4 克隆节点--一个使用cloneNode()复制表格的例子   12.5.5 移动节点及其范例   12.5.6 关于添加新行和排序的小技巧   12.6 读写数据--添加、修改和删除属性   12.7 外观与行为   12.7.1 DOM样式...

    EXTJS 3.3.1例子

     再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格...

    AJAX基础概念、核心技术与典型案例(内涵动态实例)

    11.3.htm 删除表格的第一行和第一列 11.4.htm 实现单元格行顺序的改变 dynamicTable 完整的Ajax调用DOM的实例 第12章(/C12/) 12.1.htm 一个在元素内定义CSS的范例 12.2.htm ...

    javascriptbyexample:Javascript范例

    返回可变数量的参数函数:递归函数事件处理鼠标事件关键事件更改标签值变更班级更改输入元素鼠标X / Y坐标通过标签名称获取元素元素样式操纵URL 编辑子节点设定属性添加元素面向对象JavaScript 表格验证异常处理正则...

    List.js:用于向表格添加搜索、排序、过滤器和灵活性的库-开源

    小巧、不可见且简单但功能强大且速度惊人的普通 JavaScript,可为纯 HTML 列表、表格或任何内容添加搜索、排序、过滤器和灵活性。 List.js 可以以三种不同的方式使用。 它可以在现有的 HTML 上,也可以创建自己的 ...

    php网络开发完全手册

    15.3.8 用户动态添加记录 249 15.3.9 用户动态更新记录 251 15.3.10 用户动态删除记录 253 15.4 使用PHP获取MySQL数据库的信息 255 15.4.1 获取数据库的信息 255 15.4.2 获取表的信息 256 15.4.3 获取列的数目 256 ...

    JavaScript高级教程

    第 1 章 JavaScript 是什么...............................................1 3 1.1 历史简述..............................................1 1.2 JavaScript 实现................................................

    Node.js-tutorials:适用于初学者的Node.js小代码教程

    Node.js教程 适用于初学者的Node.js小代码教程。 什么是Node.js 这是一个开放源代码服务器环境,用户在服务器上使用JavaScript。 它使用异步编程。 为什么选择Node.js ...它可以添加,删除,修改数据库中

    jQuery详细教程

    当我们在教程中演示 jQuery 时,会将函数直接添加到 &lt;head&gt; 部分中。不过,把它们放到一个单独的文件中会更好,就像这样(通过 src 属性来引用文件): 实例 &lt;script type="text/javascript" src="jquery.js"&gt; ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例038 动态输出JavaScript代码 69 实例039 当数字遇到了字符串 70 实例040 PHP程序员的基础——变量的应用 72 实例041 打印系统环境变量信息print_r($_ENV) 73 实例042 使用可变变量输出“I Like PHP!” 73 实例...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例038 动态输出JavaScript代码 69 实例039 当数字遇到了字符串 70 实例040 PHP程序员的基础——变量的应用 72 实例041 打印系统环境变量信息print_r($_ENV) 73 实例042 使用可变变量输出“I Like PHP!” 73 实例...

    asp.net知识库

    体验.net2.0的优雅(3) -- 为您的 SiteMap 添加 控制转发功能 GridView控件使用经验 ASP.NET 2.0:弃用 DataGrid 吧,有新的网格控件了! ASP.NET2.0控件一览---标准控件(1) ASP.NET2.0控件一览---标准控件(2) ASP...

    ASP.NET常用代码

    3.删除表格选定记录 int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex]; string deleteCmd = "DELETE from Employee where emp_id = " + intEmpID.ToString() 4.删除表格记录警告 private void DataGrid...

    js使用小技巧

    表格行指示 //各种尺寸 s += " 网页可见区域宽:"+ document.body.clientWidth; s += " 网页可见区域高:"+ document.body.clientHeight; s += " 网页可见区域高:"+ document.body.offsetWeight +" (包括...

    PHP和MySQL WEB开发(第4版)

    1.4 添加动态内容 1.4.1 调用函数 1.4.2 使用date()函数 1.5 访问表单变量 1.5.1 简短、中等以及长风格的表单变量 1.5.2 字符串的连接 1.5.3 变量和文本 1.6 理解标识符 1.7 检查变量类型 1.7.1 PHP的数据类型 1.7.2...

    PHP和MySQL Web开发第4版pdf以及源码

    1.4 添加动态内容 1.4.1 调用函数 1.4.2 使用date()函数 1.5 访问表单变量 1.5.1 简短、中等以及长风格的表单变量 1.5.2 字符串的连接 1.5.3 变量和文本 1.6 理解标识符 1.7 检查变量类型 1.7.1 PHP的数据...

    PHP和MySQL Web开发第4版

    1.4 添加动态内容 1.4.1 调用函数 1.4.2 使用date()函数 1.5 访问表单变量 1.5.1 简短、中等以及长风格的表单变量 1.5.2 字符串的连接 1.5.3 变量和文本 1.6 理解标识符 1.7 检查变量类型 1.7.1 PHP的数据...

Global site tag (gtag.js) - Google Analytics