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

2016-01-29 20:13 11 1 收藏

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

【 tulaoshi.com - ASP 】

我们继续接上期

在页面里通过调用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_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("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()

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

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

全部代码下载

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

来源:http://www.tulaoshi.com/n/20160129/1510881.html

延伸阅读
标签: PHP
  <!--二泉.net -- <? class Pages{     var $cn;        //连接数据库游标     var $d;            //连接数据表的游标     var $result;   &...
标签: ASP
研究了漏洞,我就想解决的方法,我总结一下,里面有我想的一个不成熟的想法。  是给高手看的,看看是不是一种解决已知和未知SQL注入漏洞的好方法。 这个是我想的不成熟的方法,我认为能解决大部分以知和未知的SQL注入漏洞,让入侵者弄不到密码!  首先我先分析大多数的SQL注入,原理无非就是对管理员敏感的信息进行猜测,因此都需...
class RSPage {   var $Debug    =  0;   var $sqoe     =  1; // sqoe= show query on error   var $Link_ID    = 0;   var $Record    = array();   var $Row;   var $numRow;   var $Parse;   var $Error  ...
标签: ASP
  我们在写ASP数据库程序的时候,通常都会用到SQL语句,而在增加数据和更新数据的时候,通常会使用一下方式:insert into message (incept,sender,title,content,sendtime,flag,issend) values ('"&incept(i)&"','"&membername&"','"&title&"','"&message&"',Now(),0,1) 当字段比较多的时候,而且更新的...
标签: PHP
  -------------------------------论坛-------------------------- 数据表 create table guest(id int not null auto_increment,primary key(id),title varchar(50),email varchar(30),homepage varchar(30),name varchar(30),text text,relay int,r_time date) create table relay(id int not null auto_increment,primary &nb...

经验教程

656

收藏

44
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部