当前位置: 首页 > 图文教程 > 网络编程 > ASP > 创建一个ASP通用分页类(二)

ASP
ASP中数据库调用中常见错误的现象和解决方法
ASP取出HTML里面的图片地址的函数
关于分页查询和性能问题
利用Asp生成整站静态
用ASP+XMLHTTP编写一个天气预报程序
轻松检测浏览器是否接受Cookies信息
净化网络环境:ASP程序实现过滤脏话
入门:防范SQL注入攻击的新办法
如何对ASP.NET进行性能优化
ASP无法更新ACCESS数据库解决方法
ASP:利用ASP把图片上传到数据库
ASP:用ASP编程实现网络内容快速查找
ASP:用ASP打造一个小型的网页BBS系统
ASP:用Asp编程实现QQ的在线情况查询
通过表单创建word的一个例子
在ASP中轻松实现记录集分页显示
ASP中实现小偷程序的原理和简单示例
ASP:6行代码实现无组件上传
实用篇:用asp实现QQ在线查询
如何轻松打造ASP计数器

创建一个ASP通用分页类(二)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 24 ::
收藏到网摘: n/a

我们继续接上期

在页面里通过调用ShowPage()的方法显示出来,ShowPage可以在GetRS以后的任意位置调用,也可以调用多次

Public Sub ShowPage()
Dim str_tmp
int_totalRecord=XD_RS.RecordCount
If int_totalRecord<=0 Then
  str_error=str_error & "总记录数为零,请输入数据"
  Call ShowError()
End If
If int_totalRecord="" Then
  int_TotalPage=1
Else
  If int_totalRecord mod PageSize =0 Then
int_TotalPage = CLng(int_TotalRecord / XD_PageSize * -1)*-1
  Else
int_TotalPage = CLng(int_TotalRecord / XD_PageSize * -1)*-1+1
  End If
End If

If Int_curpage>int_Totalpage Then
  int_curpage=int_TotalPage
End If

'=====================================================
'显示分页信息,各个模块根据自己要求更改显求位置
'=====================================================
response.write "
str_tmp=ShowFirstPrv '显示首页、前一页
response.write str_tmp 
str_tmp=showNumBtn '数字导航
response.write str_tmp
str_tmp=ShowNextLast  '、末页
response.write str_tmp
str_tmp=ShowPageInfo
response.write str_tmp
response.write ""
end Sub

到这里类的功能才算完整(为了节省版面,我有些方法没有放上去,再下面附上全部完整代码)写一个简单页面测试一下

<% 
’把分页类包含进来
set conn = server.CreateObject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq=" & server.Mappath("pages.mdb")

'#############类调用样例#################
'创建对象
Set mypage=new xdownpage
'得到数据库连接
mypage.getconn=conn
'sql语句
mypage.getsql="select * from [test] order by id asc"
'设置每一页的记录条数据为5条
mypage.pagesize=5
'返回Recordset
set rs=mypage.getrs()
'显示分页信息,这个方法可以,在set rs=mypage.getrs()以后,可在任意位置调用,可以调用多次
mypage.showpage()

'显示数据
Response.Write("<br/>")
for i=1 to mypage.pagesize
'这里就可以自定义显示方式了
    if not rs.eof then
        response.write rs(0) & "<br/>"
        rs.movenext
    else
         exit for
    end if
next
%>

效果还不错,该有的全有了。

分页过程中,还有一个比软麻烦的问题是,在带多个参数的URL中,如保证在页面转向的时候不掉失其它参数。我靠一个GetURL的过程来实现,并在生成导航时调用。

Private Function GetURL()
  Dim strurl,str_url,i,j,search_str,result_url
  search_str="page="
  strurl=Request.ServerVariables("URL")
  Strurl=split(strurl,"/")
  i=UBound(strurl,1)
  str_url=strurl(i)'得到当前页文件名
  str_params=Request.ServerVariables("QUERY_STRING")
  If str_params="" Then
  result_url=str_url & "?page="
  Else
  If InstrRev(str_params,search_str)=0 Then
result_url=str_url & "?" & str_params &"&page="
  Else
j=InstrRev(str_params,search_str)-2
If j=-1 Then
  result_url=str_url & "?page="
Else
  str_params=Left(str_params,j)
  result_url=str_url & "?" & str_params &"&page="
End If
  End If
  End If
  GetURL=result_url
End Function

通过GetURL的处理,可以自动的获取当前面的文件名,和所有带的参数,实现了页面转换页不丢失参数。
三、后记
通过这个分页类,解决了每次分页时需要重复写的分页部分代码,方便了编程,也使的提高了主要代码的可读性。也希望能给大家在编程过程中带来一点方便,由于本人水平有限,程序和文章中难免有错,还望大家批评指正。

全部代码下载