当前位置: 网学 > 编程文档 > ASP > 正文

创建一个ASP通用分页类

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/06/17
这里这个类分的功能基本已经实现了,只要在调用这个类的页面的URL后面加上page=n,它就会显示第n页的内容了,所以接下去要做的就是创建一个数据导航条了,我把它设计为类似以面的形式

9 3 4 :页次:1/8页 共51条记录 7条/每页

在页面里通过调用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的处理,可以自动的获取当前面的文件名,和所有带的参数,实现了页面转换页不丢失参数。
三、后记
通过这个分页类,解决了每次分页时需要重复写的分页部分代码,方便了编

  • 上一篇资讯: 数组显示菜单效果
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号