最近又开始做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">基本信息 用户组管理 修改密码</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> </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=">>" name="addButton"><br><br>
<input type="Button" onClick="deleteGroups()" value="<<" 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> </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);
}
分享到:
相关推荐
JavaScript添加、删除事件的方法,也就是让某些方法生效指定次数,可以是一次、两次或更多次,但指定次数执行完毕后就删除该方法,使其失效,如果你经常从事JS编程,你就会知道这种功能用得比较多。 先来看看一个...
12.5.4 克隆节点--一个使用cloneNode()复制表格的例子 12.5.5 移动节点及其范例 12.5.6 关于添加新行和排序的小技巧 12.6 读写数据--添加、修改和删除属性 12.7 外观与行为 12.7.1 DOM样式...
再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格...
11.3.htm 删除表格的第一行和第一列 11.4.htm 实现单元格行顺序的改变 dynamicTable 完整的Ajax调用DOM的实例 第12章(/C12/) 12.1.htm 一个在元素内定义CSS的范例 12.2.htm ...
返回可变数量的参数函数:递归函数事件处理鼠标事件关键事件更改标签值变更班级更改输入元素鼠标X / Y坐标通过标签名称获取元素元素样式操纵URL 编辑子节点设定属性添加元素面向对象JavaScript 表格验证异常处理正则...
小巧、不可见且简单但功能强大且速度惊人的普通 JavaScript,可为纯 HTML 列表、表格或任何内容添加搜索、排序、过滤器和灵活性。 List.js 可以以三种不同的方式使用。 它可以在现有的 HTML 上,也可以创建自己的 ...
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 ...
第 1 章 JavaScript 是什么...............................................1 3 1.1 历史简述..............................................1 1.2 JavaScript 实现................................................
Node.js教程 适用于初学者的Node.js小代码教程。 什么是Node.js 这是一个开放源代码服务器环境,用户在服务器上使用JavaScript。 它使用异步编程。 为什么选择Node.js ...它可以添加,删除,修改数据库中
当我们在教程中演示 jQuery 时,会将函数直接添加到 <head> 部分中。不过,把它们放到一个单独的文件中会更好,就像这样(通过 src 属性来引用文件): 实例 <script type="text/javascript" src="jquery.js"> ...
实例038 动态输出JavaScript代码 69 实例039 当数字遇到了字符串 70 实例040 PHP程序员的基础——变量的应用 72 实例041 打印系统环境变量信息print_r($_ENV) 73 实例042 使用可变变量输出“I Like PHP!” 73 实例...
实例038 动态输出JavaScript代码 69 实例039 当数字遇到了字符串 70 实例040 PHP程序员的基础——变量的应用 72 实例041 打印系统环境变量信息print_r($_ENV) 73 实例042 使用可变变量输出“I Like PHP!” 73 实例...
体验.net2.0的优雅(3) -- 为您的 SiteMap 添加 控制转发功能 GridView控件使用经验 ASP.NET 2.0:弃用 DataGrid 吧,有新的网格控件了! ASP.NET2.0控件一览---标准控件(1) ASP.NET2.0控件一览---标准控件(2) ASP...
3.删除表格选定记录 int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex]; string deleteCmd = "DELETE from Employee where emp_id = " + intEmpID.ToString() 4.删除表格记录警告 private void DataGrid...
表格行指示 //各种尺寸 s += " 网页可见区域宽:"+ document.body.clientWidth; s += " 网页可见区域高:"+ document.body.clientHeight; s += " 网页可见区域高:"+ document.body.offsetWeight +" (包括...
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...
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.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的数据...