浏览 5765 次
锁定老帖子 主题:分类排序方法——上移下移操作(Java版)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (15) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-27
最近项目中遇到了上移下移操作的一个操作,以前也看到过,但一直没有去研究过,这次项目中遇到了,也就去研究了一把,其实实现原理也挺简单的,说白了就是
要记录数据库里的要进行排序表的总记录数量,然后根据循环的次数,多写几个隐藏变量,进行上移下移操作的时候进行判断就可以了。 <%@ 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"> <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版本了,此处就不多说了。如果有需要源代码的朋友的话,可以去我的博客里看看: 文章地址: 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-11-27
请问什么是上移下移呀?
|
|
返回顶楼 | |
发表时间:2009-11-27
方法有好多种啊 呵呵!
|
|
返回顶楼 | |
发表时间:2009-11-27
怎么都混在一起写…………
|
|
返回顶楼 | |
发表时间:2009-11-30
syre 写道 怎么都混在一起写………… 已经好久没有写过java了,各种框架也都已经忘的差不多了,现在更喜欢使用这种原始的代码。
|
|
返回顶楼 | |
发表时间:2009-11-30
sandssss 写道 请问什么是上移下移呀? 所谓的上移下移只是一种说法,其实就是对分类或文章进行重新排序一种操作。
|
|
返回顶楼 | |
发表时间:2009-11-30
怎么不写 select 铺开以后 上下移呢?? 这个代码完全和asp一个风格的~ 是做什么用的 ?写着玩的吗?
|
|
返回顶楼 | |
发表时间:2009-11-30
不太清楚 什么是上移下移?
|
|
返回顶楼 | |
发表时间:2009-11-30
我觉得写出你的实现原理比你贴一堆不容易看的代码更能让人马上明白你的意思
|
|
返回顶楼 | |