`

分类排序方法——上移下移操作(ASP版)

阅读更多

  最近项目中遇到了上移下移操作的一个操作,以前也看到过,但一直没有去研究过,这次项目中遇到了,也就去研究了一把,其实实现原理也挺简单的,说白了就是要记录数据库里的要
进行排序表的总记录数量,然后根据循环的次数,多写几个隐藏变量,进行上移下移操作的时候进行判断就可以了。
  现在一起来看看具体的代码实现吧,希望会对那些没有做过这些操作的朋友有所帮助。

<%
dim database,conn
database=server.mappath("/inc/db1.mdb")
set conn=server.createobject("adodb.connection")
connstr="Driver={Microsoft Access Driver (*.mdb)}; DBQ="&database
conn.open connstr

'--------------------------------------------
' Author:jack
' Date:2009/11/21
'
'--------------------------------------------
'--------------------------------------------
'- 上移或下移操作
'--------------------------------------------
Dim moveflag
moveflag = Request.Form("moveflag")
If Not IsNull(moveflag) And moveflag<>"" Then 
	Dim premenuid,premenuordernum,nextmenuid,nextmenuordernum,nowmenuid,nowmenuordernum,movetype
	movetype = Request.Form("movetype")
	premenuid = Request.Form("premenuid")
	premenuordernum = Request.Form("premenuordernum")
	nowmenuid = Request.Form("nowmenuid")
	nowmenuordernum = Request.Form("nowmenuordernum")
	nextmenuid = Request.Form("nextmenuid")
	nextmenuordernum = Request.Form("nextmenuordernum")
	
	If movetype="up" Then 
		sql = "update c_menu set ordernum="& premenuordernum &" where menuid="& nowmenuid		
		conn.execute(sql)
		sql = "update c_menu set ordernum="& nowmenuordernum &" where menuid="& premenuid
		conn.execute(sql)

	End If 
	If movetype="down" Then 
		sql = "update c_menu set ordernum="& nextmenuordernum &" where menuid="& nowmenuid
		conn.execute(sql)
		sql = "update c_menu set ordernum="& nowmenuordernum &" where menuid="& nextmenuid
		conn.execute(sql)
	End If 
	response.write "<script>parent.location.href='MenuSet.asp';</script>"
End If 
'--------------------------------------------
'- 设置栏目首页可见
'--------------------------------------------
Dim subflag
subflag = request.Form("subflag")
if not isnull(subflag) and subflag<>""  Then
	Dim menuId,menuName,display,msg
	MenuId = request.form("MenuId")
	menuName = request.Form("hdmenuname")
	display = request.Form("hddisplay")
	if MenuId<>"" and cint(MenuId)>0 Then
		sql = "update c_menu set isdisplay=abs(isdisplay-1) where menuid="&MenuId
		Conn.execute(sql)
		msg = menuName & "为" 
		If CInt(display)=1 Then 
			msg = msg & "首页不可见" 
		Else 
			msg = msg & "首页可见" 
		End If 
		response.write "<script>alert('成功设置"& msg &"');parent.location.href='MenuSet.asp';</script>"
	end if
end If

%>
<html>
<head>
<title>首页栏目配置</title>
<link rel="stylesheet" href="inc/Style.css" type="text/css">
</head>
<body>
<table border="0" cellspacing="1" cellpadding="0" width="98%" align="center">
	<tr><td height="10"></td></tr>
	<tr><td height="30"><font class="title">□&nbsp;<B>首页栏目配置</B></font></td></tr>
	<tr><td height="20">注意:您可以设置首页栏目的顺序,并可以设置栏目是否显示在首页[最多7条]!</td></tr>
</table>
<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="120"><b>首页可见</b></td>
								<td align="center" width="120"><b>添加时间</b></td>
								<td align="center" width="60"><b>操作</b></td>
								<td align="center" width="50"><b>操作</b></td>
							</tr>
							<%
							sql = "select * from c_menu order by isdisplay desc,ordernum asc"
							set rs=server.createobject("adodb.recordset")
							rs.open sql,conn,1,3
							if rs.eof and rs.bof then
							%>
							<tr>
								<td height="25" bgcolor="F9FBFE" align="center" colspan="10"><font color="#ff0000">数据库中没有符合要求的记录 </font></td>
							</tr>
							<tr>
								<td colspan="10" height="1" bgcolor="#d8e5ff"></td>
							</tr>
							<%
							else
								i=0
								Response.write "<input type=""hidden"" name=""totalMenus"" id=""totalMenus"" value="""&rs.recordcount&""">"
								do while not rs.eof
								if i mod 2=0 then
									color = "#f3f6ff"
								else
									color = "#ffffff"
								end if
							%>
								<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("menuid")%>"></td>
									<%if rs("isdisplay")="1" Then%>
									<td align="left">&nbsp;<font color=red><%=rs("MenuName")%></font></td>
									<td align="center"><font color=red>使用中...</font></td>
									<%else%>
									<td align="left">&nbsp;<%=rs("MenuName")%></td>
									<td align="center"><font color=#666666>禁用中...</font></td>
									<%end if%>
									<td align="center"><%=rs("AddTime")%></td>
									<td align="center">
										<a href="#" onclick="moveMenu('<%=Rs("menuid")%>','<%=i+1%>','up');"><img src="../../Img/icon_digg.gif" border="0" alt="上移"/></a>
										<a href="#" onclick="moveMenu('<%=Rs("menuid")%>','<%=i+1%>','down');"><img src="../../Img/icon_bury.gif" border="0" alt="下移"/></a>
									</td>
									<td align="center">
										<a href="#" onclick="changeDisplay('<%=Rs("menuid")%>','<%=Rs("menuname")%>','<%=Rs("isdisplay")%>');">
										<%
										if rs("isdisplay")="1" then
											response.write "禁用"
										else
											response.write "<font color=red>启用</font>"
										end if
										%>
										</a>
									</td>
								</tr>
							<%
								i=i+1
								rs.movenext
								loop
							%>
						</table>
					</td>
				</tr>
				<tr>
					<td colspan="2" height="1" bgcolor="#d8e5ff"></td>
				</tr>
				<%
				rs.close
				set rs=nothing
				end if
				%>
			</table>
		</td>
	</tr>
</table>
<form action="" method="post" name="form1" id="form1" target="Checkframe">	
	<input type="hidden" name="subflag" id="subflag" value="1">
	<input type="hidden" name="MenuId" id="MenuId">
	<input type="hidden" name="hdmenuname" id="hdmenuname">
	<input type="hidden" name="hddisplay" id="hddisplay">
</form>
<form action="" method="post" name="form2" id="form2" target="Checkframe">
	<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>
<script language="javascript">
function changeDisplay(MenuId,MenuName,Display){
	document.getElementById("MenuId").value = MenuId;
	document.getElementById("hdmenuname").value = MenuName;
	document.getElementById("hddisplay").value = Display;
	document.getElementById("form1").submit();
}
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>
<%

'异常错误处理
if err.number <> 0 then 
	logError err.number,forerr(err.source&":"&err.description)
	err.clear
	Response.end
end if

Conn.Close
set Conn = nothing
%>
 

以上是核心的代码实现。本人会在近段时间写java版本的操作,希望有需要的朋友在点评那里说下。

如果有需要具体信息的朋友,可以去我的博客里下载:

分类排序方法——上移下移操作(ASP版)

 

0
0
分享到:
评论

相关推荐

    Gridview上移下移标准版(asp.net)

    标签中的“.net上移下移 排序 gird上移下移 asp.net”进一步强调了这一功能与.NET框架、排序以及ASP.NET技术的关联。在实际应用中,可能还需要考虑到性能优化,例如批量操作或异步处理,以避免频繁的数据库交互影响...

    上移下移代码

    2. **方法和函数**:如果一段代码被封装为方法或函数,上移或下移可能意味着更改调用这些方法的时机,从而改变程序的行为。理解函数的作用和调用时机是调整代码顺序的关键。 3. **控制流程**:在Java、JavaScript等...

    实现上移下移

    标题“实现上移下移”指的是在某种用户界面或应用程序中,用户可以通过上移和下移功能来调整列表项的顺序。这通常涉及到列表视图(ListView)或类似的数据展示控件,允许用户交互地重新排列列表中的条目。在这个场景中...

    mysql常用的上移下移存储过程实现

    项目开发中列表展示页面涉及到一些条目的上下移动 ,由于数据量大时,服务端代码比较耗时, 所以我使用mysql 存储过程完成上下移动,比较通用方法,欢迎大家下载学习,共同进步

    GridView控件行上移、下移

    在实际应用中,用户可能需要对数据进行排序,包括行的上移和下移操作,以便调整数据的显示顺序。以下是对这个主题的详细解释。 1. GridView概述: GridView控件提供了一个强大的界面来显示和编辑表格数据。它可以...

    上移 下移 动态移动

    上移 下移 动态移动,上移 下移 动态移动,上移 下移 动态移动,

    treeview添加删除修改上移下移功能

    本篇文章将详细讲解如何在`TreeView`中实现添加、删除、修改、上移和下移节点的功能。 **1. 添加节点** 添加节点是`TreeView`中最基础的操作。在编程中,我们通常会创建一个`TreeNode`对象,设置其文本和其他属性,...

    WPF ListBox实现上移下移功能

    实现上移下移功能,具体绑定一个数据源,操作数据源,最后把数据源赋值给数据源。

    ASP.NET中TreeView节点上移下移{完整的例题}

    本教程将深入探讨如何在ASP.NET中实现TreeView节点的上移和下移功能,同时确保操作过程中页面无刷新效果。 首先,我们需要了解TreeView的基本结构。TreeView由一系列TreeNode组成,每个TreeNode可以有子TreeNode,...

    php上移下移

    在PHP编程中,“上移”...总的来说,"php上移下移"涉及的是PHP数组操作和用户交互,是Web开发中常见的功能实现,尤其适用于需要动态调整显示顺序的场景。通过`jobup.php`和`jobdown.php`,我们可以轻松地实现这一功能。

    个性化表格上移下移个性化

    个性化表格上移下移,很特别的个性化表格,希望有人能用的到。。。。。。。。。。。。

    jquery动态增加修改删除表格,上移下移功能

    4. **上移下移**:这项功能在列表或表格排序中很实用,允许用户调整行的顺序。用户可能点击上移或下移按钮,然后通过jQuery操作改变行的相对位置。 接下来,我们看下项目中的文件: - **accident_hand_input.htm**...

    后台上移下移,编辑,删除效果

    在IT行业中,尤其是在Web开发领域,"后台上移下移,编辑,删除效果"涉及到的是对数据列表的操作,这是常见的用户界面(UI)交互功能。这些功能通常在管理界面或者数据展示页面出现,允许管理员或者用户对数据进行...

    Ext.net实现GridPanel拖动行、上移下移排序功能DEMO

    对于GridPanel中拖动选中行排序的实现,网上有不少ExtJs实现的例子,但是...4、加了【最上】【最下】【上移】【下移】四个按钮排序的功能。目前按钮排序只能在Grid的单选模式下使用。 实现说明与功能演示请见我的Blog

    jsp页面数据的上移下移

    ### JSP 页面数据的上移下移实现方法 在网页应用开发中,有时我们需要实现列表项的上下移动功能,例如调整导航菜单、列表排序等。本文将详细介绍如何使用 JavaServer Pages (JSP) 实现这一功能,并通过示例代码进行...

    WindowsFormsApplication1Datagridview上移下移.zip

    7. **用户体验**:为了提供良好的用户体验,可以考虑添加视觉反馈,比如高亮选中的行,或者禁用上移/下移按钮当无法执行该操作时。 这个压缩包内的代码示例很可能是演示了以上提到的一些或全部步骤,以实现一个完整...

    简单的签到列表选择,实现选择上移、下移。

    6. **数据操作**:在用户点击上移或下移按钮时,需要找到当前选中签到项在数组中的位置,并根据上移或下移操作调整其前后元素的位置。这通常涉及数组的`splice`、`shift`或`unshift`等方法。同时,要确保操作后列表...

    存储过程实现上移下移.doc

    最后,虽然文档没有提供完整的前端页面代码,但可以推测这应该涉及到一个ASP.NET页面,用于调用这些存储过程,通过用户交互(如按钮点击)来执行上移或下移操作。通常,前端页面会通过AJAX或者服务器端的方法调用...

    table上移下移 js

    在网页开发中,表格(Table)是展示数据常用的一种元素,尤其在管理界面或数据分析页面中,用户可能需要对表格中的行进行上移或下移操作,以调整数据的顺序。这种功能通常通过JavaScript实现,因为JavaScript允许...

Global site tag (gtag.js) - Google Analytics