源:表格中行的上移下移并排序

该表格是作为排序用的,表格中每条记录前有一个radio,选择可以对该条记录进行向上向下移动并排序,添删改可以另加。

javascript代码
[code]
<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>
[/code]

jsp代码,用了struts标签
[code]
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td colspan="4">
<br>
<input type="button" value="↑" class="Increase" οnclick="upList()"/><br> <br>
<input type="button" value="↓" class="Increase" οnclick="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>
[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值