ASP常用的分页方法

    这种分页方法是:将数据库中所有符合查询条件的记录一次性的都读入 recordset 中,存放在内存中,然后通过 ADO Recordset 对象所提供的几个专门支持分页处理的属性: PageSize、PageCount以及 AbsolutePage来管理分页处理。

此分页方法用到的几个Recordset 属性
pagesize……定义一页显示记录的条数(自己设定)
recordcount……返回记录总数
pagecount……返回总页数
AbsolutePage ……设置此属性以移动到某一页的第一个记录。

实例:

None.gif < % strsql  =   " ………………… "    ' sql查询语句
None.gif
   Set  rs = Server.Createobject( " ADODB.RECORDSET " )
None.gif  rs.Open sql, conn, 
1 1
None.gif   maxperpage
= 50
None.gif  
if   not  rs.eof  then
None.gif  rs.pageSize 
=  maxperpage     ' 设定每页显示的记录数
None.gif
   totalnumber = rs.recordcount    ' 取得记录总数,赋值给totalnumber
None.gif
   sumpages  =  rs.pageCount     ' 取得总页数,赋值给sumpages
None.gif
   CurrentPage  =  Request.QueryString( " page " )    ' 通过浏览器地址取得所要显示页码
None.gif
    ' 针对页码值的取值范围进行处理
None.gif
    if   isEmpty (page)  or   Cint (page)  < 1   then
None.gif   CurrentPage 
=   1
None.gif  
elseif   Cint (page)  > sumpages  then
None.gif   CurrentPage 
=  sumpages 
None.gif  
end   if
None.gif  rs.AbsolutePage 
=  page    ' 移动到显示页的第一个记录
None.gif
    i = 0
None.gif  
Do   while   not  rs.eof  and  i < maxperpage 
None.gif    response.Write(rs(
" ?? " ))   ' 显示页面数据
None.gif
   rs.MoveNext
None.gif  
Loop
None.gif  
else
None.gif  Response.Write(
" 没此内容 " )
None.gif  
End   if
None.gif  rs.Close
None.gif  
Set  rs  =   Nothing  
None.gif   showpage(totalnumber,maxperpage,
1 , 1 , " " ' 调用过程showpage显示显示“上一页 下一页”等信息
None.gif'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
None.gif'
***********************************************
None.gif'
过程名:showpage
None.gif'
作  用:显示“上一页 下一页”等信息
None.gif'
参  数:totalnumber ----数据总数量
None.gif'
       maxperpage  ----每页显示数量
None.gif'
       ShowTotal   ----是否显示总数量(1显示)
None.gif'
       ShowAllPages ---是否用下拉列表显示所有页面以供跳转(1显示)。
None.gif'
       strUnit     ----计数单位
None.gif'
***********************************************
None.gif
sub  showpage(totalnumber,maxperpage,ShowTotal,ShowAllPages,strUnit)
None.gif 
dim  n, i,strTemp,strUrl
None.gif 
if  totalnumber  mod  maxperpage = 0   then
None.gif     n
=  totalnumber  \  maxperpage
None.gif   
else
None.gif     n
=  totalnumber  \  maxperpage + 1
None.gif   
end   if
None.gif   strTemp
=   " <table align='center'><tr><td> "
None.gif 
if  ShowTotal = 1   then  
None.gif  strTemp
= strTemp  &   " 共 <b> "   &  totalnumber  &   " </b>  "   &  strUnit  &   " &nbsp;&nbsp; "
None.gif 
end   if
None.gif strUrl
= GetURL( " page= " )
None.gif   
if  CurrentPage < 2   then
None.gif      strTemp
= strTemp  &   " 首页 上一页&nbsp; "
None.gif   
else
None.gif      strTemp
= strTemp  &   " <a href=' "   &  strUrl  &   " 1'>首页</a>&nbsp; "
None.gif      strTemp
= strTemp  &   " <a href=' "   &  strUrl  &  (CurrentPage - 1 &   " '>上一页</a>&nbsp; "
None.gif   
end   if
None.gif   
if  n - currentpage < 1   then
None.gif      strTemp
= strTemp  &   " 下一页 尾页 "
None.gif   
else
None.gif      strTemp
= strTemp  &   " <a href=' "   &  strUrl  & (CurrentPage + 1 &   " '>下一页</a>&nbsp; "
None.gif      strTemp
= strTemp  &   " <a href=' "   &  strUrl  &  n  &   " '>尾页</a> "
None.gif   
end   if
None.gif    strTemp
= strTemp  &   " &nbsp;页次:<strong><font color=red> "   &  CurrentPage  &   " </font>/ "   &  n  &   " </strong>页  "
None.gif    strTemp
= strTemp  &   " &nbsp;<b> "   &  maxperpage  &   " </b> "   &  strUnit  &   " /页 "
None.gif 
if  ShowAllPages = 1   then
None.gif  strTemp
= strTemp  &   " &nbsp;转到:<select class='input' name='page' size='1' οnchange=""javascript:window.***=' "   &  strUrl  &    " '+this.options[this.selectedIndex].value;""> "    
None.gif     
for  i  =   1   to  n   
None.gif      strTemp
= strTemp  &   " <option value=' "   &  i  &   " ' "
None.gif   
if   cint (CurrentPage) = cint (i)  then  strTemp = strTemp  &   "  selected  "
None.gif   strTemp
= strTemp  &   " >第 "   &  i  &   " 页</option> "    
None.gif     
next
None.gif  strTemp
= strTemp  &   " </select> "
None.gif 
end   if
None.gif strTemp
= strTemp  &   " </td></tr></table> "
None.gif response.write strTemp
None.gif
end sub
None.gif
' ***********************************************
None.gif'
函数名:GetURL
None.gif'
作  用:获得当前网址并判断向地址中加入 ? 或 & 
None.gif'
参  数:search_str  ----分页传递字符标示
None.gif'
返回值:加了 ? 或 & 的网址
None.gif'
***********************************************
None.gif
Private   Function  Geturl(http: // www.blog.com.cn / search_str)
None.gif  
Dim  strurl,str_url,i,j,search_str,result_url
None.gif  
' search_str="page="
None.gif
  strurl = Request.ServerVariables( " URL " ) ' 得到系统路径
None.gif
  Strurl = split (strurl, " / " ) ' 把字符串以"/"分开,返回一数组
None.gif
  i = UBound (strurl, 1 ' 返回数组的最大下标
None.gif
  str_url = strurl(i) ' 得到当前页文件名
None.gif
  str_params = Request.ServerVariables( " QUERY_STRING " ) ' 返回?后字符串
None.gif
   If  str_params = ""   Then
None.gif            result_url
= str_url  &   " ? " & search_str
None.gif  
Else
None.gif            
If   InstrRev (str_params,search_str) = 0   Then
None.gif                     result_url
= str_url  &   " ? "   &  str_params  & " & " & search_str
None.gif            
Else
None.gif                     j
= InstrRev (str_params,search_str) - 2
None.gif                     
If  j =- 1   Then
None.gif                           result_url
= str_url  &   " ? " & search_str
None.gif                     
Else
None.gif                              str_params
= Left (str_params,j)
None.gif                              result_url
= str_url  &   " ? "   &  str_params  & " & "   & search_str
None.gif                     
End   If
None.gif            
End   If
None.gif  
End   If
None.gif  GetURL
= result_url
None.gif
End Function     
None.gif%
>


转载于:https://www.cnblogs.com/flytide/archive/2006/03/30/363068.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值