最近项目中遇到了上移下移操作的一个操作,以前也看到过,但一直没有去研究过,这次项目中遇到了,也就去研究了一把,其实实现原理也挺简单的,说白了就是
要记录数据库里的要进行排序表的总记录数量,然后根据循环的次数,多写几个隐藏变量,进行上移下移操作的时候进行判断就可以了。
现在一起来看看具体的代码实现吧,希望会对那些没有做过这些操作的朋友有所帮助。
此版本为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"> <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版)
分享到:
相关推荐
《zTree右击操作详解——实现目录节点的上移、下移、置顶与置底功能》 在IT行业中,zTree是一款广泛使用的基于JavaScript的树状视图组件,它以其丰富的功能和良好的性能深受开发者喜爱。在日常的网页开发中,我们...
在给定的示例中,列表项(li)包含了文件名、时间等信息,以及上移(moveUpBtn)、下移(moveDownBtn)和删除(deleteBtn)的操作按钮。每个按钮都有一个唯一的value属性,用于标识要操作的列表项。例如: ```html ...
本篇文章主要介绍了如何使用jQuery来实现网页表格中数据行的动态上移、下移以及置顶操作。这些操作能够帮助我们在前端直接通过用户交互完成数据的顺序调整,同时配合简单的动画效果,使操作过程更加生动有趣。该方法...
《数据结构-3期(KC002) 扑克牌箱排序.docx》的学习资料主要讲解了一种基于数据结构的排序算法——扑克牌箱排序。这种排序方法是将52张扑克牌按照大小放入13个箱子里,每个箱子对应一种花色,然后再对每个箱子内的...
要实现这个功能,我们首先需要创建一个包含`<li>`元素的列表,并为每个`<li>`添加两个事件处理器,分别对应“上移”和“下移”的点击操作。jQuery提供了便捷的选择器和事件绑定方法,例如`$(selector).click...
在默认情况下,Magento 2 的后台管理界面中,产品在分类中的排序通常是通过手动输入顺序号或者通过“上移”、“下移”按钮来调整。这样的操作方式虽然有效,但对于拥有大量产品的商家来说,可能会显得效率较低。...
【实验七:软件基本操作——农学优品文档】 本实验主要关注的是SPSS软件的基本操作,这是一款广泛应用于农业科学以及其他社会科学领域的专业统计分析工具。SPSS全称为Statistical Package for the Social Sciences...
- **Shift+F1**:打开编辑器光标字符处使用的类或者方法Java文档的浏览器。用于查阅API文档。 - **Ctrl+W**:可以选择单词继而语句继而行继而函数。逐步扩展选择范围。 - **Ctrl+Shift+W**:取消选择光标所在词。...