`
daha33
  • 浏览: 52874 次
社区版块
存档分类
最新评论

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

阅读更多
该表格是作为排序用的,表格中每条记录前有一个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>&nbsp;<br>
	  		<input type="button" value="↓" class="Increase" onclick="downList()"/><br>&nbsp;<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"/>&nbsp;  <!--可以添加click事件改变选择行的颜色-->
	   		</td>
	   		<td>
       			<bean:write name="list" property="nodeTypeTemp"/>&nbsp;
       		</td>
       		<td>
       			<bean:write name="list" property="authTypeTemp"/>&nbsp;
       		</td>
       	   </tr>
       	 </logic:iterate>
       	</logic:present>
       </span>
 </table>   
分享到:
评论

相关推荐

    GridView控件行上移、下移

    GridView控件是ASP.NET ...通过以上步骤,您可以实现GridView控件中行数据的上移和下移功能,为用户提供更灵活的数据管理体验。这个功能在需要用户自定义排序顺序的场景中非常有用,如任务管理、日程安排等应用程序。

    DataTableRowUpAndDown

    在"上移"和"下移"的场景中,用户可以方便地调整表格中行的顺序,这对于那些需要根据需求动态调整数据顺序的项目特别有用。比如,当用户需要更改某个条目的优先级或者按照特定逻辑排列数据时,这个功能就显得尤为重要...

    GridView上下移动行事件

    2. **自定义按钮**:在GridView的每一行中,添加两个自定义按钮(升序和降序),通常放在TemplateField内,分别用于上移和下移行。 3. **RowDataBound事件**:在GridView的RowDataBound事件中,为上移和下移按钮...

    jquery实现更改表格行顺序示例

    在操作列中,有两个带有“move_btn”类的按钮,分别使用了 Bootstrap 的上箭头和下箭头图标(glyphicon),表示上移和下移行的功能。每个按钮都有一个 `move_act` 属性,用于区分上移还是下移操作,其值分别为 "up" ...

    jquery调整表格行tr上下顺序实例讲解

    表格中的每一行(tr)都有一个包含“上移”和“下移”链接的单元格(td),这两个链接分别绑定到了up和down函数,用于执行相应行的上下移动操作。 接下来,我们来深入讲解up和down这两个函数。这两个函数都接受当前被...

Global site tag (gtag.js) - Google Analytics