企业动态关于我们联系我们
   建站常识
 域名常识
域名解析问题集锦
域名基础知识概述
域名dns问题集锦
国内域名转入业务问题集锦
 空间常识
虚拟主机产品说明书
FTP上传注意事项
ftp操作常识问题集锦
网站无法上传怎么办?
 邮局常识
什么是电子邮件地址?
企业邮箱与免费邮箱的区别,企业邮箱的优点?
什么是SMTP?
什么是POP3?
 建站常识
企业如何建好网络营销
三种类型企业网站的作用
如何推广B2C独立网店
做网站快速成功的九个步骤
 SEO 知识
什么是SEO?
什么是SPAM?
SEO和SPAM有什么区别?
影响SEO的几点常识

首页技术交流ASP
Asp用于分页的两个函数   2007/6/20   返回前页

在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"第"¤tpage&"/"&n&"页  "
   response.write"共"&totalrec&"条信息  "
   if currentpage <= 1 then
   response.write"第一页 "&Separator&" "
   response.write"前一页 "&Separator&" "
   else
   response.write"第一页 "&Separator&" "
   response.write"前一页 "&Separator&" "
   end if
   if currentpage = n then
   response.write"下一页 "&Separator&" "
   response.write"最后页 "
   else
   response.write"下一页 "&Separator&" "
   response.write"最后页 "
   end if
  case "1"
   if currentpage < n then
    response.write"下一页 "   
   else
    response.write"下一页 "   
   end if
   for i=1 to n
    if cstr(i)=cstr(currentpage) then
     response.write ""&i&""&" "&Separator&" "
     else
      response.write""&i&" "&Separator&" " 
    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"第一页 "&Separator&" "
   else
    response.write"第一页 "&Separator&" "
   end if
   if CurrPageFiled<=1 then
    response.write"前十页 "&Separator&" "      
   else
    response.write"前十页 "&Separator&" "      
   end if
   '输出当前页码段
   for i=MinPageNo to MaxPageNo
    if i<=n then
     if cstr(i)=cstr(currentpage) then
      response.write ""&i&""&" "&Separator&" "
      else
       response.write""&i&" "&Separator&" " 
     end if
    end if
   next
   '输出 “后十页 | 最后页”
   if CurrPageFiled>=MaxPageFiled then
    response.write"后十页 "&Separator&" "      
   else
    response.write"后十页 "&Separator&" "      
   end if
   if currentpage>=n then
    response.write"最后页 " 
   else
    response.write"最后页 " 
   end if
 end select
end sub
%>


   广告也精彩
版权所有:南京欧万网络服务工作室 www.owon.cn sitemap