WEB开发网
开发学院WEB开发ASP Asp用于分页的两个函数 阅读

Asp用于分页的两个函数

 2005-10-15 10:33:08 来源:WEB开发网   
核心提示:(原创 vince6799) 在asp代码中分页是有点麻烦的事情,个人在在代码编写过程中把分页代码写成了两个函数,Asp用于分页的两个函数,虽然在功能上不是很完善,但对于一般的应用应该是满足的了

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

Tags:Asp 用于 两个

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接