📄 ad_class_photo.asp
字号:
cRootID=Trim(request("cRootID"))
MoveNum=trim(request("MoveNum"))
if ClassID="" then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>参数不足!</li>"
else
ClassID=CLng(ClassID)
end if
if cRootID="" then
FoundErr=true
ErrMsg=ErrMsg & "<br><li>错误参数!</li>"
else
cRootID=Cint(cRootID)
end if
if MoveNum="" then
FoundErr=true
ErrMsg=ErrMsg & "<br><li>错误参数!</li>"
else
MoveNum=Cint(MoveNum)
if MoveNum=0 then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>请选择要提升的数字!</li>"
end if
end if
if FoundErr=True then
exit sub
end if
'得到本栏目的PrevID,NextID
set rs=conn.execute("select PrevID,NextID from PhotoClass where ClassID=" & ClassID)
PrevID=rs(0)
NextID=rs(1)
rs.close
set rs=nothing
'先修改上一栏目的NextID和下一栏目的PrevID
if PrevID>0 then
conn.execute "update PhotoClass set NextID=" & NextID & " where ClassID=" & PrevID
end if
if NextID>0 then
conn.execute "update PhotoClass set PrevID=" & PrevID & " where ClassID=" & NextID
end if
dim mrs,MaxRootID
set mrs=conn.execute("select max(rootid) From PhotoClass")
MaxRootID=mrs(0)+1
'先将当前栏目移至最后,包括子栏目
conn.execute("update PhotoClass set RootID=" & MaxRootID & " where RootID=" & cRootID)
'然后将位于当前栏目以上的栏目的RootID依次加一,范围为要提升的数字
sqlOrder="select * From PhotoClass where ParentID=0 and RootID<" & cRootID & " order by RootID desc"
set rsOrder=server.CreateObject("adodb.recordset")
rsOrder.open sqlOrder,conn,1,3
if rsOrder.bof and rsOrder.eof then
exit sub '如果当前栏目已经在最上面,则无需移动
end if
i=1
do while not rsOrder.eof
tRootID=rsOrder("RootID") '得到要提升位置的RootID,包括子栏目
conn.execute("update PhotoClass set RootID=RootID+1 where RootID=" & tRootID)
i=i+1
if i>MoveNum then
rsOrder("PrevID")=ClassID
rsOrder.update
conn.execute("update PhotoClass set NextID=" & rsOrder("ClassID") & " where ClassID=" & ClassID)
exit do
end if
rsOrder.movenext
loop
rsOrder.movenext
if rsOrder.eof then
conn.execute("update PhotoClass set PrevID=0 where ClassID=" & ClassID)
else
rsOrder("NextID")=ClassID
rsOrder.update
conn.execute("update PhotoClass set PrevID=" & rsOrder("ClassID") & " where ClassID=" & ClassID)
end if
rsOrder.close
set rsOrder=nothing
'然后再将当前栏目从最后移到相应位置,包括子栏目
conn.execute("update PhotoClass set RootID=" & tRootID & " where RootID=" & MaxRootID)
call CloseConn()
response.Redirect "ad_Class_Photo.asp?Action=Order"
end sub
sub DownOrder()
dim ClassID,sqlOrder,rsOrder,MoveNum,cRootID,tRootID,i,rs,PrevID,NextID
ClassID=trim(request("ClassID"))
cRootID=Trim(request("cRootID"))
MoveNum=trim(request("MoveNum"))
if ClassID="" then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>参数不足!</li>"
else
ClassID=CLng(ClassID)
end if
if cRootID="" then
FoundErr=true
ErrMsg=ErrMsg & "<br><li>错误参数!</li>"
else
cRootID=Cint(cRootID)
end if
if MoveNum="" then
FoundErr=true
ErrMsg=ErrMsg & "<br><li>错误参数!</li>"
else
MoveNum=Cint(MoveNum)
if MoveNum=0 then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>请选择要提升的数字!</li>"
end if
end if
if FoundErr=True then
exit sub
end if
'得到本栏目的PrevID,NextID
set rs=conn.execute("select PrevID,NextID from PhotoClass where ClassID=" & ClassID)
PrevID=rs(0)
NextID=rs(1)
rs.close
set rs=nothing
'先修改上一栏目的NextID和下一栏目的PrevID
if PrevID>0 then
conn.execute "update PhotoClass set NextID=" & NextID & " where ClassID=" & PrevID
end if
if NextID>0 then
conn.execute "update PhotoClass set PrevID=" & PrevID & " where ClassID=" & NextID
end if
dim mrs,MaxRootID
set mrs=conn.execute("select max(rootid) From PhotoClass")
MaxRootID=mrs(0)+1
'先将当前栏目移至最后,包括子栏目
conn.execute("update PhotoClass set RootID=" & MaxRootID & " where RootID=" & cRootID)
'然后将位于当前栏目以下的栏目的RootID依次减一,范围为要下降的数字
sqlOrder="select * From PhotoClass where ParentID=0 and RootID>" & cRootID & " order by RootID"
set rsOrder=server.CreateObject("adodb.recordset")
rsOrder.open sqlOrder,conn,1,3
if rsOrder.bof and rsOrder.eof then
exit sub '如果当前栏目已经在最下面,则无需移动
end if
i=1
do while not rsOrder.eof
tRootID=rsOrder("RootID") '得到要提升位置的RootID,包括子栏目
conn.execute("update PhotoClass set RootID=RootID-1 where RootID=" & tRootID)
i=i+1
if i>MoveNum then
rsOrder("NextID")=ClassID
rsOrder.update
conn.execute("update PhotoClass set PrevID=" & rsOrder("ClassID") & " where ClassID=" & ClassID)
exit do
end if
rsOrder.movenext
loop
rsOrder.movenext
if rsOrder.eof then
conn.execute("update PhotoClass set NextID=0 where ClassID=" & ClassID)
else
rsOrder("PrevID")=ClassID
rsOrder.update
conn.execute("update PhotoClass set NextID=" & rsOrder("ClassID") & " where ClassID=" & ClassID)
end if
rsOrder.close
set rsOrder=nothing
'然后再将当前栏目从最后移到相应位置,包括子栏目
conn.execute("update PhotoClass set RootID=" & tRootID & " where RootID=" & MaxRootID)
call CloseConn()
response.Redirect "ad_Class_Photo.asp?Action=Order"
end sub
sub UpOrderN()
dim sqlOrder,rsOrder,MoveNum,ClassID,i
dim ParentID,OrderID,ParentPath,Child,PrevID,NextID
ClassID=Trim(request("ClassID"))
MoveNum=trim(request("MoveNum"))
if ClassID="" then
FoundErr=true
ErrMsg=ErrMsg & "<br><li>错误参数!</li>"
else
ClassID=CLng(ClassID)
end if
if MoveNum="" then
FoundErr=true
ErrMsg=ErrMsg & "<br><li>错误参数!</li>"
else
MoveNum=Cint(MoveNum)
if MoveNum=0 then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>请选择要提升的数字!</li>"
end if
end if
if FoundErr=True then
exit sub
end if
dim sql,rs,oldorders,ii,trs,tOrderID
'要移动的栏目信息
set rs=conn.execute("select ParentID,OrderID,ParentPath,child,PrevID,NextID From PhotoClass where ClassID="&ClassID)
ParentID=rs(0)
OrderID=rs(1)
ParentPath=rs(2) & "," & ClassID
child=rs(3)
PrevID=rs(4)
NextID=rs(5)
rs.close
set rs=nothing
if child>0 then
set rs=conn.execute("select count(*) From PhotoClass where ParentPath like '%"&ParentPath&"%'")
oldorders=rs(0)
rs.close
set rs=nothing
else
oldorders=0
end if
'先修改上一栏目的NextID和下一栏目的PrevID
if PrevID>0 then
conn.execute "update PhotoClass set NextID=" & NextID & " where ClassID=" & PrevID
end if
if NextID>0 then
conn.execute "update PhotoClass set PrevID=" & PrevID & " where ClassID=" & NextID
end if
'和该栏目同级且排序在其之上的栏目------更新其排序,范围为要提升的数字
sql="select ClassID,OrderID,child,ParentPath,PrevID,NextID From PhotoClass where ParentID="&ParentID&" and OrderID<"&OrderID&" order by OrderID desc"
set rs=server.CreateObject("adodb.recordset")
rs.open sql,conn,1,3
i=1
do while not rs.eof
tOrderID=rs(1)
conn.execute("update PhotoClass set OrderID="&tOrderID+oldorders+i&" where ClassID="&rs(0))
if rs(2)>0 then
ii=i+1
set trs=conn.execute("select ClassID,OrderID From PhotoClass where ParentPath like '%"&rs(3)&","&rs(0)&"%' order by OrderID")
if not (trs.eof and trs.bof) then
do while not trs.eof
conn.execute("update PhotoClass set OrderID="&tOrderID+oldorders+ii&" where ClassID="&trs(0))
ii=ii+1
trs.movenext
loop
end if
trs.close
set trs=nothing
end if
i=i+1
if i>MoveNum then
rs(4)=ClassID
rs.update
conn.execute("update PhotoClass set NextID=" & rs(0) & " where ClassID=" & ClassID)
exit do
end if
rs.movenext
loop
rs.movenext
if rs.eof then
conn.execute("update PhotoClass set PrevID=0 where ClassID=" & ClassID)
else
rs(5)=ClassID
rs.update
conn.execute("update PhotoClass set PrevID=" & rs(0) & " where ClassID=" & ClassID)
end if
rs.close
set rs=nothing
'更新所要排序的栏目的序号
conn.execute("update PhotoClass set OrderID="&tOrderID&" where ClassID="&ClassID)
'如果有下属栏目,则更新其下属栏目排序
if child>0 then
i=1
set rs=conn.execute("select ClassID From PhotoClass where ParentPath like '%"&ParentPath&"%' order by OrderID")
do while not rs.eof
conn.execute("update PhotoClass set OrderID="&tOrderID+i&" where ClassID="&rs(0))
i=i+1
rs.movenext
loop
rs.close
set rs=nothing
end if
call CloseConn()
response.Redirect "ad_Class_Photo.asp?Action=OrderN"
end sub
sub DownOrderN()
dim sqlOrder,rsOrder,MoveNum,ClassID,i
dim ParentID,OrderID,ParentPath,Child,PrevID,NextID
ClassID=Trim(request("ClassID"))
MoveNum=trim(request("MoveNum"))
if ClassID="" then
FoundErr=true
ErrMsg=ErrMsg & "<br><li>错误参数!</li>"
exit sub
else
ClassID=Cint(ClassID)
end if
if MoveNum="" then
FoundErr=true
ErrMsg=ErrMsg & "<br><li>错误参数!</li>"
exit sub
else
MoveNum=Cint(MoveNum)
if MoveNum=0 then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>请选择要下降的数字!</li>"
exit sub
end if
end if
dim sql,rs,oldorders,ii,trs,tOrderID
'要移动的栏目信息
set rs=conn.execute("select ParentID,OrderID,ParentPath,child,PrevID,NextID From PhotoClass where ClassID="&ClassID)
ParentID=rs(0)
OrderID=rs(1)
ParentPath=rs(2) & "," & ClassID
child=rs(3)
PrevID=rs(4)
NextID=rs(5)
rs.close
set rs=nothing
'先修改上一栏目的NextID和下一栏目的PrevID
if PrevID>0 then
conn.execute "update PhotoClass set NextID=" & NextID & " where ClassID=" & PrevID
end if
if NextID>0 then
conn.execute "update PhotoClass set PrevID=" & PrevID & " where ClassID=" & NextID
end if
'和该栏目同级且排序在其之下的栏目------更新其排序,范围为要下降的数字
sql="select ClassID,OrderID,child,ParentPath,PrevID,NextID From PhotoClass where ParentID="&ParentID&" and OrderID>"&OrderID&" order by OrderID"
set rs=server.CreateObject("adodb.recordset")
rs.open sql,conn,1,3
i=0 '同级栏目
ii=0 '同级栏目和子栏目
do while not rs.eof
conn.execute("update PhotoClass set OrderID="&OrderID+ii&" where ClassID="&rs(0))
if rs(2)>0 then
set trs=conn.execute("select ClassID,OrderID From PhotoClass where ParentPath like '%"&rs(3)&","&rs(0)&"%' order by OrderID")
if not (trs.eof and trs.bof) then
do while not trs.eof
ii=ii+1
conn.execute("update PhotoClass set OrderID="&OrderID+ii&" where ClassID="&trs(0))
trs.movenext
loop
end if
trs.close
set trs=nothing
end if
ii=ii+1
i=i+1
if i>=MoveNum then
rs(5)=ClassID
rs.update
conn.execute("update PhotoClass set PrevID=" & rs(0) & " where ClassID=" & ClassID)
exit do
end if
rs.movenext
loop
rs.movenext
if rs.eof then
con
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -