欢迎光临
我们一直在努力

Asp用于分页的两个函数-ASP教程,ASP技巧

建站超值云服务器,限时71元/月

在asp代码中分页是有点麻烦的事情,个人在在代码编写过程中把分页代码写成了两个函数,虽然在功能上不是很完善,但对于一般的应用应该是满足的了。

<%
分页函数分为两个函数
calcpage(totalrec,msg_per_page,currentpage,n,rowcount,pagers) 分页计算函数
pagelist(listtype,url,querry,separator,listlink) 分页列表函数

分页计算函数
totalrec 记录集总数
msg_per_page 每页显示的记录数,在调用calcpage时需提前对该变量赋值
currentpage 当前页变量,在调用calcpage时需提前对该变量赋值
n 总页数 
rowcount 设置每一页的数据记录数
pagers 记录集对象
sub calcpage(totalrec,msg_per_page,currentpage,n,rowcount,pagers)
 n=0 设置无记录时页数为0
 if currentpage=”” then currentpage=0
 pagers.eof and pagers.bof  无记录
 not pagers.eof or not pagers.bof 有记录
 if not pagers.eof or not pagers.bof then
  totalrec=pagers.recordcount
  pagers.pagesize=msg_per_page
  if totalrec mod msg_per_page = 0 then 计算总页数,recordcount:数据的总记录数
   n = totalrec\msg_per_page n:总页数
  else
   n = totalrec\msg_per_page+1
  end if
  if not isnumeric(currentpage) or currentpage=”” then currentpage=1
  if currentpage <> “” then
   currentpage = cint(currentpage)
  end if
  if currentpage < 1 then
   currentpage = 1
  end if
  if currentpage*msg_per_page > totalrec and not((currentpage-1)*msg_per_page < totalrec) then
   currentpage=1
  end if
  pagers.absolutepage = currentpage absolutepage:设置指针指向某页开头
  rowcount = pagers.pagesize            pagesize:设置每一页的数据记录数
 end if
end sub
%>
<%
分页列表函数
url 跳转的地址
querry ?后的参数
separator 分隔符
listtype 分页类型
类型:0 “第一页 | 前一页 | 下一页 | 最后页”
类型:1 “1 | 2 | 3 | 4 | ……….| 下一页”
类型:2 “第一页 | 前十页 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 后十页 | 最后页”
listlink 链接使用的样式

sub pagelist(listtype,url,querry,separator,listlink)
 if separator=”” then separator=”|”
 if listtype=”” then listtype=”0″
 select case listtype
  case “0”
   response.write”第”&currentpage&”/”&n&”页&nbsp;&nbsp;”
   response.write”共”&totalrec&”条信息&nbsp;&nbsp;”
   if currentpage <= 1 then
   response.write”第一页&nbsp;”&separator&”&nbsp;”
   response.write”前一页&nbsp;”&separator&”&nbsp;”
   else
   response.write”<a href=”””&url&”?page=1&”&querry&””” class=”””&listlink&”””>第一页</a>&nbsp;”&separator&”&nbsp;”
   response.write”<a href=”””&url&”?page=”&currentpage-1&”&”&querry&”””  class=”””&listlink&”””>前一页</a>&nbsp;”&separator&”&nbsp;”
   end if
   if currentpage = n then
   response.write”下一页&nbsp;”&separator&”&nbsp;”
   response.write”最后页&nbsp;”
   else
   response.write”<a href=”””&url&”?page=”&currentpage+1&”&”&querry&”””  class=”””&listlink&”””>下一页</a>&nbsp;”&separator&”&nbsp;”
   response.write”<a href=”””&url&”?page=”&n&”&”&querry&””” class=”””&listlink&”””>最后页</a>&nbsp;”
   end if
  case “1”
   if currentpage < n then
    response.write”<a href=”””&url&”?page=”&currentpage+1&”&”&querry&””” class=”””&listlink&”””>下一页</a>&nbsp;”   
   else
    response.write”下一页&nbsp;”   
   end if
   for i=1 to n
    if cstr(i)=cstr(currentpage) then
     response.write “<b>”&i&”</b>”&”&nbsp;”&separator&”&nbsp;”
     else
      response.write”<a href=”””&url&”?page=”&i&”&”&querry&””” class=”””&listlink&”””>”&i&”</a>&nbsp;”&separator&”&nbsp;” 
    end if
   next
  
  case “2”
   pagemercout=10 每次可翻的最大页数
   取得记录的最大页码段
   if n mod pagemercout=0 then
    maxpagefiled=n\pagemercout
   else
    maxpagefiled=n\pagemercout+1
   end if
   判断当前页所在的页码段
   if currentpage mod pagemercout =0 then
    currpagefiled=currentpage\pagemercout
   else
    currpagefiled=currentpage\pagemercout+1
   end if
   取得当前页码段的最大页码和最小页码
   maxpageno=currpagefiled*pagemercout
   minpageno=(currpagefiled-1)*pagemercout+1
   输出 “第一页 | 前十页 |”
   if currentpage<=1 then
    response.write”第一页&nbsp;”&separator&”&nbsp;”
   else
    response.write”<a href=”””&url&”?page=1&”&querry&””” class=”””&listlink&”””>第一页</a>&nbsp;”&separator&”&nbsp;”
   end if
   if currpagefiled<=1 then
    response.write”前十页&nbsp;”&separator&”&nbsp;”      
   else
    response.write”<a href=”””&url&”?page=”&minpageno-pagemercout&”&”&querry&””” class=”””&listlink&”””>前十页</a>&nbsp;”&separator&”&nbsp;”      
   end if
   输出当前页码段
   for i=minpageno to maxpageno
    if i<=n then
     if cstr(i)=cstr(currentpage) then
      response.write “<b>”&i&”</b>”&”&nbsp;”&separator&”&nbsp;”
      else
       response.write”<a href=”””&url&”?page=”&i&”&”&querry&”””>”&i&”</a>&nbsp;”&separator&”&nbsp;” 
     end if
    end if
   next
   输出 “后十页 | 最后页”
   if currpagefiled>=maxpagefiled then
    response.write”后十页&nbsp;”&separator&”&nbsp;”      
   else
    response.write”<a href=”””&url&”?page=”&maxpageno+1&”&”&querry&””” class=”””&listlink&”””>后十页</a>&nbsp;”&separator&”&nbsp;”      
   end if
   if currentpage>=n then
    response.write”最后页&nbsp;” 
   else
    response.write”<a href=”””&url&”?page=”&n&”&”&querry&””” class=”””&listlink&”””>最后页</a>&nbsp;” 
   end if
 end select
end sub
%>

转自:动态网制作指南 www.knowsky.com
赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » Asp用于分页的两个函数-ASP教程,ASP技巧
分享到: 更多 (0)