最近项目中遇到了上移下移操作的一个操作,以前也看到过,但一直没有去研究过,这次项目中遇到了,也就去研究了一把,其实实现原理也挺简单的,说白了就是
要记录数据库里的要进行排序表的总记录数量,然后根据循环的次数,多写几个隐藏变量,进行上移下移操作的时候进行判断就可以了。
现在一起来看看具体的代码实现吧,希望会对那些没有做过这些操作的朋友有所帮助。
此版本为java版,上午已经写过了asp版本了,希望会对朋友们有所帮助。
具体实现:
if(movetype.equals("up")){
premenuid = Integer.parseInt(request.getParameter("premenuid"));
premenuordernum = Integer.parseInt(request.getParameter("premenuordernum"));
sql = "update c_menu set ordernum="+ premenuordernum +" where menuid="+ nowmenuid;
conn.executeUpdate(sql);
sql = "update c_menu set ordernum="+ nowmenuordernum +" where menuid="+ premenuid;
conn.executeUpdate(sql);
}
if(movetype.equals("down")){
nextmenuid = Integer.parseInt(request.getParameter("nextmenuid"));
nextmenuordernum = Integer.parseInt(request.getParameter("nextmenuordernum"));
sql = "update c_menu set ordernum="+ nextmenuordernum +" where menuid="+ nowmenuid;
conn.executeUpdate(sql);
sql = "update c_menu set ordernum="+ nowmenuordernum +" where menuid="+ nextmenuid;
conn.executeUpdate(sql);
}
out.println("<mce:script type="text/javascript"><!--
parent.location.href='index.jsp';
// --></mce:script>");
}
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>类型排序——上移下移操作(Java版)</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="类型排序,上移下移操作,java">
<meta http-equiv="description" content="类型排序——上移下移操作(Java版)">
<link rel="stylesheet" type="text/css" href="style/Styles.css" mce_href="style/Styles.css">
<mce:script language="javascript"><!--
function moveMenu(menuid,menuordernum,movetype){
var num,prenum,premenuid,nextnum,nextmenuid,maxnum;
document.getElementById("movetype").value = movetype;
num = parseInt(menuordernum);
if(movetype=="up"){
if(num==1){
alert("当前已经处于第一位!");
}else{
prenum = document.getElementById("menuorder_"+(num-1)).value;
premenuid = document.getElementById("menuid_"+(num-1)).value;
document.getElementById("premenuid").value = premenuid;
document.getElementById("premenuordernum").value = prenum;
document.getElementById("nowmenuid").value = menuid;
document.getElementById("nowmenuordernum").value=menuordernum;
document.getElementById("form2").submit();
}
}else{
maxnum = parseInt(document.getElementById("totalMenus").value);
if(num>=maxnum){
alert("已经处于最后了!");
}else{
nextnum = document.getElementById("menuorder_"+(num+1)).value;
nextmenuid = document.getElementById("menuid_"+(num+1)).value;
document.getElementById("nextmenuid").value = nextmenuid;
document.getElementById("nextmenuordernum").value = nextnum;
document.getElementById("nowmenuid").value = menuid;
document.getElementById("nowmenuordernum").value = menuordernum;
document.getElementById("form2").submit();
}
}
}
// --></mce:script>
</head>
<body>
<table id="Table1" cellSpacing="0" cellPadding="0" width="100%" border="0" align="center">
<tr>
<td align="center">
<table id="Table4" cellSpacing="0" cellPadding="0" width="98%" align="center" border="0">
<tr>
<td align="center">
<table class="td_table" cellspacing="1" cellpadding="0" align="center" rules="all" border="0" width="100%" ID="Table5">
<tr bgColor="#d8e5ff" height=23>
<td align="center" width="60"><b>序号</b></td>
<td align="center"><b>栏目名称</b></td>
<td align="center" width="60"><b>操作</b></td>
</tr>
<%
// 计算总记录数
sql = "select count(*) as totalNum from c_menu";
rs = conn.executeSql(sql);
if(rs.next()){
totalNum = rs.getInt("totalNum");
}
if(rs!=null){
try{
rs.close();
}catch(Exception e){
e.printStackTrace();
}
}
int i = 0;
// 显示详细信息
sql = "select * from c_menu order by ordernum asc";
rs=conn.executeSql(sql);
%>
<tr>
<td colspan="10" height="1" bgcolor="#d8e5ff"></td>
</tr>
<%
String color = "";
out.println("<input type=/"hidden/" name=/"totalMenus/" id=/"totalMenus/" value=/""+totalNum+"/">");
while(rs.next()){
if(i%2==0){
color = "#f3f6ff";
}else{
color = "#ffffff";
}
%>
<tr bgcolor="<%=color%>" height=23>
<td align="center"><%=i+1%><input type="hidden" name="menuorder_<%=i+1%>" id="menuorder_<%=i+1%>" value="<%=i+1%>"><input type="hidden" name="menuid_<%=i+1%>" id="menuid_<%=i+1%>" value="<%=rs.getInt("menuid")%>"></td>
<td align="left"> <font color=red><%=rs.getString("MenuName")%></font></td>
<td align="center">
<a href="#" mce_href="#" onclick="moveMenu('<%=rs.getInt("menuid")%>','<%=i+1%>','up');"><img src="images/icon_digg.gif" mce_src="images/icon_digg.gif" border="0" alt="上移"/></a>
<a href="#" mce_href="#" onclick="moveMenu('<%=rs.getInt("menuid")%>','<%=i+1%>','down');"><img src="images/icon_bury.gif" mce_src="images/icon_bury.gif" border="0" alt="下移"/></a>
</td>
</tr>
<%
i=i+1;
}
%>
</table>
</td>
</tr>
<tr>
<td colspan="2" height="1" bgcolor="#d8e5ff"></td>
</tr>
<%
if(rs!=null){
try{
rs.close();
}catch(Exception e){
e.printStackTrace();
}
}
%>
</table>
</td>
</tr>
</table>
<form action="index.jsp" method="post" name="form2" id="form2">
<input type="hidden" name="moveflag" id="moveflag" value="1">
<input type="hidden" name="movetype" id="movetype">
<input type="hidden" name="premenuid" id="premenuid">
<input type="hidden" name="premenuordernum" id="premenuordernum">
<input type="hidden" name="nowmenuid" id="nowmenuid">
<input type="hidden" name="nowmenuordernum" id="nowmenuordernum">
<input type="hidden" name="nextmenuid" id="nextmenuid">
<input type="hidden" name="nextmenuordernum" id="nextmenuordernum">
</form>
</body>
</html>
之前已经发布过asp版本了,此处就不多说了。如果有需要源代码的朋友的话,可以去我的博客里看看:
文章地址: