该表格是作为排序用的,表格中每条记录前有一个radio,选择可以对该条记录进行向上向下移动并排序,添删改可以另加。
javascript代码
<script type="text/javascript">
function upList(){ //向上排序
var span = document.getElementById("trIds"); //得到要排序的tr所在的span,当然也可以设置要排序的tr的name。
var form = document.forms[0];
if(form.radios == undefined || form.radios == "") //如果没有记录就不操作,防止没有记录点击排序按钮报错
{
return;
}
for(var i=0; i<form.radios.length;i++){
if(form.radios[i].checked){
if((i-1) < 0){
alert("已经到最顶端!");
}else{
var value1 = form.authOrders[i].value; //得到选择行的序号
var value2 = form.authOrders[i-1].value; //得到选择行前一行的序号
span.insertBefore(span.childNodes[i],span.childNodes[i-1]); //进行行的对调,选择行与前一行对换位置
form.authOrders[i].value = value1; //将开始选择行的序号赋给现在所在行 form.authOrders[i-1].value = value2; //将开始选择行前一行的序号赋给现在的所在行,及排序号不变,行对调
form.radios[i-1].checked = true; //将开始选择行的前一行的radio设置为选中状态,表示向上移了一行
}
}
}
}
function downList(){ //向下排序
var span = document.getElementById("trIds");
var form = document.forms[0];
if(form.radios == undefined || form.radios == "") //如果没有记录就不操作
{
return;
}
for(var i=0; i<form.radios.length;i++){
if(form.radios[i].checked){
if((i+1) > (form.radios.length-1)){
alert("已经到最底端!");
}else{
var value1 = form.authOrders[i].value; //得到选择行的序号
var value2 = form.authOrders[i+1].value; //得到选择行后一行的序号
if((i+2) > (form.radios.length-1)){
span.insertBefore(span.childNodes[i+1],span.childNodes[i]); //进行行的对调,选择行与后一行对换
form.radios[i+1].checked = true; //对调完后一行被选择,表示向下移动了一行
}else{
span.insertBefore(span.childNodes[i],span.childNodes[i+2]);
form.radios[i+1].checked = true;
}
form.authOrders[i].value = value1; //将开始选择行的序号赋给现在所在行
form.authOrders[i+1].value = value2; //将开始选择行后一行的序号赋给现在的所在行,及排序号不变,行对调
break;
}
}
}
}
</script>
jsp代码,用了struts标签
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td colspan="4">
<br>
<input type="button" value="↑" class="Increase" onclick="upList()"/><br> <br>
<input type="button" value="↓" class="Increase" onclick="downList()"/><br> <br>
</td>
</tr>
<span id="trIds"><!--可以不用span,用tr的name,js代码要做相应的修改-->
<logic:present name="nodeAuthList">
<logic:iterate id="list" indexId="indexId" name="nodeAuthList">
<tr name="trs">
<td>
<!-- 用于排序的隐藏字段 -->
<input type="hidden" name="authOrders" value="<bean:write name='indexId'/>"/>
<input type="radio" name="radios"/> <!--可以添加click事件改变选择行的颜色-->
</td>
<td>
<bean:write name="list" property="nodeTypeTemp"/>
</td>
<td>
<bean:write name="list" property="authTypeTemp"/>
</td>
</tr>
</logic:iterate>
</logic:present>
</span>
</table>
分享到:
相关推荐
GridView控件是ASP.NET ...通过以上步骤,您可以实现GridView控件中行数据的上移和下移功能,为用户提供更灵活的数据管理体验。这个功能在需要用户自定义排序顺序的场景中非常有用,如任务管理、日程安排等应用程序。
在"上移"和"下移"的场景中,用户可以方便地调整表格中行的顺序,这对于那些需要根据需求动态调整数据顺序的项目特别有用。比如,当用户需要更改某个条目的优先级或者按照特定逻辑排列数据时,这个功能就显得尤为重要...
2. **自定义按钮**:在GridView的每一行中,添加两个自定义按钮(升序和降序),通常放在TemplateField内,分别用于上移和下移行。 3. **RowDataBound事件**:在GridView的RowDataBound事件中,为上移和下移按钮...
在操作列中,有两个带有“move_btn”类的按钮,分别使用了 Bootstrap 的上箭头和下箭头图标(glyphicon),表示上移和下移行的功能。每个按钮都有一个 `move_act` 属性,用于区分上移还是下移操作,其值分别为 "up" ...
表格中的每一行(tr)都有一个包含“上移”和“下移”链接的单元格(td),这两个链接分别绑定到了up和down函数,用于执行相应行的上下移动操作。 接下来,我们来深入讲解up和down这两个函数。这两个函数都接受当前被...