最近又开始做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编程中,动态添加表格数据行是一种常见的需求,特别是在构建交互式的Web应用程序时。这个功能允许用户在不刷新整个页面的情况下添加新的记录,提高了用户体验。在这个例子中,我们将探讨如何利用...
在JavaScript编程中,动态添加表格行是一项常见的任务,特别是在创建数据展示或编辑功能时。本文将深入探讨如何使用模板和标记技术来实现这一功能。首先,我们先了解一下基本概念。 **1. 模板(Template)** 模板是...
本文将深入探讨如何使用 jQuery 动态添加和删除表格行,以实现高效且用户友好的数据展示。 首先,理解 HTML 表格的基本结构至关重要。`<table>` 元素用于创建表格,`<tr>` 代表表格行,`<td>` 或 `<th>` 分别表示...
4. **动态交互**:为了使用户体验更好,可以添加更多的交互功能,比如禁用删除按钮,或者在添加行时自动填充数据。这可以通过检查特定条件或使用`addEventListener`来实现。 5. **性能优化**:在处理大量数据时,应...
<title>jQuery动态添加删除行 <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> 姓名 年龄 操作 张三 <td>25 <td><button class="delete">删除</button></td> ...
以下是一个简单的例子,展示如何使用JavaScript添加和删除表格行: ```javascript // 获取表格元素 var table = document.getElementById('myTable'); // 添加行 function addRow() { var row = table.insertRow...
- `addRow`函数用于动态添加表格数据行,它接受四个参数:目标表格对象`tabObj`、列数`colNum`、源行索引`sorPos`和目标位置`targPos`。 - 通过`insertRow`方法在指定位置插入新行; - 使用`getElementsByTagName...
本主题聚焦于如何使用jQuery实现表格中添加和删除行的功能,这在数据展示和用户交互中非常常见。通过点击按钮动态添加或删除表格行,可以提高用户的交互体验,使得数据管理更加灵活。 首先,我们需要创建一个基本的...
在JavaScript编程中,动态添加和删除表格行是一个常见的需求,特别是在网页交互和数据展示中。这个例子主要展示了如何使用JS实现这一功能。首先,我们来理解这个“动态添加table行的js例子”的核心知识点。 1. **...
本话题将深入探讨如何实现一个动态表格,用户可以适时添加、删除和复制表格中的行。 首先,我们需要理解Ajax的工作原理。它通过JavaScript发送异步HTTP请求到服务器,获取或提交数据,然后使用JavaScript处理这些...
本项目提供了一个基于Bootstrap样式的vue动态添加删除表格数据的示例。 首先,我们需要了解基本的Vue.js概念。Vue实例是应用的核心,它包含了数据(data)、方法(methods)、计算属性(computed)等。在这个项目中...
在JavaScript中,动态向表格添加数据是一项常见的任务,特别是在网页交互和数据展示时。这个过程涉及到HTML、CSS以及JavaScript的基本操作,尤其是DOM(文档对象模型)的操作。以下是对标题和描述中所涉及知识点的...
此外,还可以扩展这个功能,比如添加验证、编辑和删除行的功能,或者使用AJAX从服务器获取数据并动态插入。这需要更深入地理解DOM操作和JavaScript事件处理。 总结来说,"表格动态插入行"是JavaScript在网页开发中...
本压缩包中的"javascript 动态创建表格:新增、删除行和单元格.zip"内容着重介绍了如何使用JavaScript来动态地构建和修改HTML表格。 首先,我们要理解表格在HTML中的基本结构,它由`<table>`元素包含,内部包含`...
在JavaScript中,表格(Table)是网页数据展示的常用元素,而动态地增加或删除行则是常见的交互需求。本文将深入探讨如何巧妙地利用JavaScript来实现这个功能。 首先,我们需要了解HTML中的`<table>`元素及其相关...
动态添加行指的是在用户执行特定操作(如点击按钮)时,通过JavaScript在页面上的表格或列表中插入新的行。这种功能在数据输入、展示可变数量的信息或者允许用户自定义内容的场景中非常实用。 首先,理解基本的HTML...
在网页开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了DOM操作,包括动态地添加和删除表格行。本文将深入探讨如何使用jQuery实现这一功能,以提高网页交互性。 一、HTML基础 首先,我们需要一个基本...
JavaScript 动态添加与删除Table行是网页交互中常见的需求,尤其在处理表格数据时,如用户管理、订单列表等场景。以下将详细介绍如何使用JavaScript实现这一功能。 首先,我们来看如何动态插入行。有两种常见的方式...