八路军雁北支队:这个ASP分页技术是如何实现的呢?

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/27 21:18:25
Const MaxPerPage=5
dim totalPut
dim CurrentPage
dim TotalPages
dim j
dim sql
if Not isempty(request("page")) then
currentPage=Cint(request("page"))
else
currentPage=1
end if
set rs=server.CreateObject("adodb.recordset")
rs.open "select top 100 pronum,name,discount,score,mark,vipprice,id,author,productdate,price2,price1,discount,pic from product order by adddate desc",conn,1,1
if err.number<>0 then
call MsgBox("数据库中无数据","Back","None")
response.End
end if
if rs.eof And rs.bof then
call MsgBox("对不起,目前没有更新商品!","Back","None")
response.End
else
totalPut=rs.recordcount

if currentpage<1 then
urrentpage=1
end if

if (currentpage-1)*MaxPerPage>totalput then
if (totalPut mod MaxPerPage)=0 then
currentpage= totalPut \ MaxPerPage
else
currentpage= totalPut \ MaxPerPage + 1
end if
end if
if currentPage=1 then
else
if (currentPage-1)*MaxPerPage<totalPut then
rs.move (currentPage-1)*MaxPerPage
dim bookmark
bookmark=rs.bookmark

else
currentPage=1
end if
end if
end if
dim i
i=0
do while not rs.eof
%>
中间HTML省略~~~
<%i=i+1
if i>=MaxPerPage then Exit Do
rs.movenext
loop
rs.close
set rs=nothing%>
<%

Function showpage(totalnumber,maxperpage,filename)
Dim n

If totalnumber Mod maxperpage=0 Then
n= totalnumber \ maxperpage
Else
n= totalnumber \ maxperpage+1
End If

Response.Write "<form method=Post action="&filename&">"
Response.Write "<p align='center' class='contents'> "
If CurrentPage<2 Then
Response.Write "<font class='contents'>首页 上一页</font> "
Else
Response.Write "<a href="&filename&"?page=1 class='contents'>首页</a> "
Response.Write "<a href="&filename&"?page="&CurrentPage-1&" class='contents'>上一页</a> "
End If

If n-currentpage<1 Then
Response.Write "<font class='contents'>下一页 尾页</font>"
Else
Response.Write "<a href="&filename&"?page="&(CurrentPage+1)&" class='contents'>"
Response.Write "下一页</a> <a href="&filename&"?page="&n&" class='contents'>尾页</a>"
End If
Response.Write "<font class='contents'> 页次:</font><font class='contents'>"&CurrentPage&"</font><font class='contents'>/"&n&"页</font> "
Response.Write "<font class='contents'> 共有<b> "&totalnumber&" </b>种商品 "&maxperpage&"种商品/页</font> "
Response.Write "<font class='contents'>转到:</font><input type='text' name='page' size=2 maxlength=10 class=smallInput value="¤tpage&">"
Response.Write " <input type='submit' class='contents' value='GO' name='cndok'></form>"
End Function
%>

Const MaxPerPage=5 //定义一个常量MaxPerPage的值为5,估计是每页最大显示的量
dim totalPut
dim CurrentPage //定义一个变量,意思是当前的页数
dim TotalPages //定义一个变量,意思是总的页数
dim j //定义变量j和sql
dim sql
if Not isempty(request("page")) then //如果提交的page不为空的话
currentPage=Cint(request("page")) //将提交的页数赋值给currentpage变量
else
currentPage=1 //如果刚才提交的page为空的话,则将currentpage赋值为1
end if
set rs=server.CreateObject("adodb.recordset") //这句话具体不会解释,反正建立一个rs用于下面打开数据库
//通过sql语句查询适合要求的数据rs.open "select top 100 pronum,name,discount,score,mark,vipprice,id,author,productdate,price2,price1,discount,pic from product order by adddate desc",conn,1,1
if err.number<>0 then //如果出错了,则显示数据库中无数据
call MsgBox("数据库中无数据","Back","None")
response.End
end if
if rs.eof And rs.bof then //如果没有查到数据,则显示对不起,目前没有更新商品
call MsgBox("对不起,目前没有更新商品!","Back","None")
response.End
else //如果查到确实有符合要求的数据,
totalPut=rs.recordcount //将查要的所有的记录数赋值给totalput

if currentpage<1 then //如果刚才提交的currentpage是负数的话(刚才没只是判断了它有没有,没有判断currentpage的合法性),则currentpage赋值为1
currentpage=1
end if

if (currentpage-1)*MaxPerPage>totalput then //如果
if (totalPut mod MaxPerPage)=0 then //如果总记录数刚好能整除每页显示的数目的话
currentpage= totalPut \ MaxPerPage //那么当前页就是总记录数除以每页显示数
else
currentpage= totalPut \ MaxPerPage + 1 //否则当前页就在此基础上再加上1(因为不能整除的原因)

解释得头晕了,不再解释了,不好意思
end if
end if
if currentPage=1 then
else
if (currentPage-1)*MaxPerPage<totalPut then
rs.move (currentPage-1)*MaxPerPage
dim bookmark
bookmark=rs.bookmark

else
currentPage=1
end if
end if
end if
dim i
i=0
do while not rs.eof
%>
中间HTML省略~~~
<%i=i+1
if i>=MaxPerPage then Exit Do
rs.movenext
loop
rs.close
set rs=nothing%>
<%

Function showpage(totalnumber,maxperpage,filename)
Dim n

If totalnumber Mod maxperpage=0 Then
n= totalnumber \ maxperpage
Else
n= totalnumber \ maxperpage+1
End If

Response.Write "<form method=Post action="&filename&">"
Response.Write "<p align='center' class='contents'> "
If CurrentPage<2 Then
Response.Write "<font class='contents'>首页 上一页</font> "
Else
Response.Write "<a href="&filename&"?page=1 class='contents'>首页</a> "
Response.Write "<a href="&filename&"?page="&CurrentPage-1&" class='contents'>上一页</a> "
End If

If n-currentpage<1 Then
Response.Write "<font class='contents'>下一页 尾页</font>"
Else
Response.Write "<a href="&filename&"?page="&(CurrentPage+1)&" class='contents'>"
Response.Write "下一页</a> <a href="&filename&"?page="&n&" class='contents'>尾页</a>"
End If
Response.Write "<font class='contents'> 页次:</font><font class='contents'>"&CurrentPage&"</font><font class='contents'>/"&n&"页</font> "
Response.Write "<font class='contents'> 共有<b> "&totalnumber&" </b>种商品 "&maxperpage&"种商品/页</font> "
Response.Write "<font class='contents'>转到:</font><input type='text' name='page' size=2 maxlength=10 class=smallInput value="¤tpage&">"
Response.Write " <input type='submit' class='contents' value='GO' name='cndok'></form>"
End Function
%>