创建一个ASP通用分页类(二)
2010-8-17编辑:feimeimei
我们继续接上期
在页面里通过调用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*-1
Else
int_TotalPage = CLng*-1+1
End If
End If
If Int_curpageint_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
conn.open "driver=microsoft access driver ;dbq=" server.Mappath
‘#############类调用样例#################
‘创建对象
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
for i=1 to mypage.pagesize
‘这里就可以自定义显示方式了
if not rs.eof then
response.write rs "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
Strurl=split