文章分类 | 软件分类 | 最新软件 | 杀毒软件 | 实用软件  | MTV下载  | 设为首页 |
  | 下载分类 | 最近更新
您的位置: 首页 >> 文章首页 >> 技术开发 >> ASP 学院 >> ASP技巧 >>  
ASP技巧点击TOP10
·WEB打印设置解决方案二(利用ScriptX.cab控件改变IE打印设置)2006-2-10 12:41:55
·利用ASP技术实现文件直接上传功能2006-2-10 14:38:40
·微软建议的ASP性能优化28条守则2006-2-10 15:52:33
·ASP访问INTERBASE数据库2006-2-10 13:01:49
·解决ASP执行DB查询中的特殊字符问题2006-2-10 16:09:04
·一个比较实用的asp函数集合类2006-2-10 11:41:21
·ASP.Net项目出错处理方法汇总2006-2-9 17:56:06
·ASP防SQL注入攻击程序2006-2-10 12:24:21
·ASP对FoxPro自由表(DBF文件)的操作2006-2-10 11:47:15
·WebClasses使注册变得容易2006-2-10 11:41:30
ASP 学院点击TOP10
·客户端脚本验证码总结2006-2-9 16:19:57
·选择最快的镜像站点2006-2-5 13:18:08
·在asp中调用jsp2006-2-5 13:33:14
·彻底终结浏览器Cahce页面的解决方案2006-2-5 13:31:26
·对ASP脚本源代码进行加密2006-2-9 14:58:12
·得到表中字段属性代码2006-2-5 13:33:31
·搜索引擎-带蜘蛛程序(类似GOOGLE)2006-2-9 20:17:17
·ASP中一个用VBScript写的随机数类2006-2-6 6:50:47
·提交信息关键字过滤类源码2006-2-9 20:11:40
·ASP.NET页面间的传值的几种方法2006-2-5 23:51:52

 

Asp用于分页的两个函数
作者:我去下载           时间:2006-2-10 13:02:37


(原创 vince6799)
在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
%>

分页:
相关文章:
Copyright© 2005-2006 wqxz.com, All Rights Reserved. 购买虚拟主机请与本站联系