分類ソート方法-上へ移動操作(Java版)


最近プロジェクトの中で1つの上へ下へ移動する操作に出会って、以前も見たことがあって、しかしずっと研究したことがなくて、今回のプロジェクトの中で出会って、同じく1本研究して、実は原理を実現するのもとても簡単で、はっきり言ってデータベースの中の並べ替え表の総記録の数を記録して、それから循環の回数によって、多くいくつかの隠れた変数を書いて、上に移動・下に移動する場合は判断すればよい.今、具体的なコード実装を見てみましょう.これらの操作をしたことがない友达に役立つことを望んでいます.このバージョンはjava版で、午前中にaspバージョンを書いたので、友达に役に立つことを望んでいます.具体的な実装:
<%@ page language="java" pageEncoding="utf-8"%>
<%@ page import="com.util.services.DbConnection" %>
<%@ page import="java.sql.*" %>
<%!
	DbConnection conn = new DbConnection();
	String sql = "";
	int totalNum = 0;
	ResultSet rs = null;
	String moveflag = "";
%>
<%
moveflag = request.getParameter("moveflag");
if(null!=moveflag && !"".equals(moveflag)){
	String movetype="";
	int premenuid=0;
	int premenuordernum=0,nextmenuid=0,nextmenuordernum=0,nowmenuid=0,nowmenuordernum=0;
	movetype = request.getParameter("movetype");	
	nowmenuid = Integer.parseInt(request.getParameter("nowmenuid"));
	nowmenuordernum = Integer.parseInt(request.getParameter("nowmenuordernum"));
	
	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("<script>parent.location.href='index.jsp';</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">
	<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();
				}
			}
		}
	</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">&nbsp;<font color=red><%=rs.getString("MenuName")%></font></td>
								<td align="center">
									<a href="#" onclick="moveMenu('<%=rs.getInt("menuid")%>','<%=i+1%>','up');"><img src="images/icon_digg.gif" border="0" alt="  "/></a>
									<a href="#" onclick="moveMenu('<%=rs.getInt("menuid")%>','<%=i+1%>','down');"><img 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バージョンがリリースされていましたが、ここではあまり言いません.ソースコードが必要な友達がいたら、私のブログに行ってみてください.
記事のアドレス:
分類ソート方法-上へ移動操作(Java版)