全部代码下载
附全部代码:<%''===================================================================''XDOWNPAGE ASP版本''版本 1.00''Code by zykj2000''Email: zykj_2000@163.net''BBS: http://bbs.513soft.net''本程序可以免费使用、修改,希望我的程序能为您的工作带来方便''但请保留以上请息''''程序特点''本程序主要是对数据分页的部分进行了封装,而数据显示部份完全由用户自定义,''支持URL多个参数''''使用说明''程序参数说明''PapgeSize 定义分页每一页的记录数''GetRS 返回经过分页的Recordset此属性只读''GetConn 得到数据库连接''GetSQL 得到查询语句''程序方法说明''ShowPage 显示分页导航条,唯一的公用方法''''===================================================================Const Btn_First="<font face=""webdings"">9</font>" ''定义第一页按钮显示样式Const Btn_Prev="<font face=""webdings"">3</font>" ''定义前一页按钮显示样式Const Btn_Next="<font face=""webdings"">4</font>" ''定义按钮显示样式Const Btn_Last="<font face=""webdings"">:</font>" ''定义最后一页按钮显示样式Const XD_Align="Center" ''定义分页信息对齐方式Const XD_Width="100%" ''定义分页信息框大小Class XdownpagePrivate XD_PageCount,XD_Conn,XD_Rs,XD_SQL,XD_PageSize,Str_errors,int_curpage,str_URL,int_totalPage,int_totalRecord,XD_sURL''=================================================================''PageSize 属性''设置每一页的分页大小''=================================================================Public Property Let PageSize(int_PageSize)If IsNumeric(Int_Pagesize) ThenXD_PageSize=CLng(int_PageSize)Elsestr_error=str_error & "PageSize的参数不正确"ShowError()End IfEnd PropertyPublic Property Get PageSizeIf XD_PageSize="" or (not(IsNumeric(XD_PageSize))) ThenPageSize=10ElsePageSize=XD_PageSizeEnd IfEnd Property''=================================================================''GetRS 属性''返回分页后的记录集''=================================================================Public Property Get GetRs()Set XD_Rs=Server.createobject("adodb.recordset")XD_Rs.PageSize=PageSizeXD_Rs.Open XD_SQL,XD_Conn,1,1If not(XD_Rs.eof and XD_RS.BOF) ThenIf int_curpage>XD_RS.PageCount Thenint_curpage=XD_RS.PageCountEnd IfXD_Rs.AbsolutePage=int_curpageEnd IfSet GetRs=XD_RSEnd Property''================================================================''GetConn 得到数据库连接''''================================================================Public Property Let GetConn(obj_Conn)Set XD_Conn=obj_ConnEnd Property''================================================================''GetSQL 得到查询语句''''================================================================Public Property Let GetSQL(str_sql)XD_SQL=str_sqlEnd Property''==================================================================''Class_Initialize 类的初始化''初始化当前页的值''''==================================================================Private Sub Class_Initialize''========================''设定一些参数的黙认值''========================XD_PageSize=10 ''设定分页的默认值为10''========================''获取当前面的值''========================If request("page")="" Thenint_curpage=1ElseIf not(IsNumeric(request("page"))) Thenint_curpage=1ElseIf CInt(Trim(request("page")))<1 Thenint_curpage=1ElseInt_curpage=CInt(Trim(request("page")))End IfEnd Sub''====================================================================''ShowPage 创建分页导航条''有首页、前一页、、末页、还有数字导航''''====================================================================Public Sub ShowPage()Dim str_tmpXD_sURL = GetUrl()int_totalRecord=XD_RS.RecordCountIf int_totalRecord<=0 Thenstr_error=str_error & "总记录数为零,请输入数据"Call ShowError()End IfIf int_totalRecord="" thenint_TotalPage=1ElseIf int_totalRecord mod PageSize =0 Thenint_TotalPage = CLng(int_TotalRecord / XD_PageSize * -1)*-1Elseint_TotalPage = CLng(int_TotalRecord / XD_PageSize * -1)*-1+1End IfEnd IfIf Int_curpage>int_Totalpage Thenint_curpage=int_TotalPageEnd If''==================================================================''显示分页信息,各个模块根据自己要求更改显求位置''==================================================================response.write ""str_tmp=ShowFirstPrvresponse.write str_tmpstr_tmp=showNumBtnresponse.write str_tmpstr_tmp=ShowNextLastresponse.write str_tmpstr_tmp=ShowPageInforesponse.write str_tmpresponse.write ""End Sub''====================================================================''ShowFirstPrv 显示首页、前一页''''''====================================================================Private Function ShowFirstPrv()Dim Str_tmp,int_prvpageIf int_curpage=1 Thenstr_tmp=Btn_First&" "&Btn_PrevElseint_prvpage=int_curpage-1str_tmp="<a href="""&XD_sURL & "1" & """>" & Btn_First&"</a> <a href=""" & XD_sURL & CStr(int_prvpage) & """>" & Btn_Prev&"</a>"End IfShowFirstPrv=str_tmpEnd Function''====================================================================''ShowNextLast 、末页''''''====================================================================Private Function ShowNextLast()Dim str_tmp,int_NextpageIf Int_curpage>=int_totalpage Thenstr_tmp=Btn_Next & " " & Btn_LastElseInt_NextPage=int_curpage+1str_tmp="<a href=""" & XD_sURL & CStr(int_nextpage) & """>" & Btn_Next&"</a> <a href="""& XD_sURL & CStr(int_totalpage) & """>" & Btn_Last&"</a>"End IfShowNextLast=str_tmpEnd Function''====================================================================''ShowNumBtn 数字导航''''''====================================================================Private Function showNumBtn()Dim i,str_tmpFor i=1 to int_totalpagestr_tmp=str_tmp & "[<a href=""" & XD_sURL & CStr(i) & """>"&i&"</a>] "NextshowNumBtn=str_tmpEnd Function''====================================================================''ShowPageInfo 分页信息''更据要求自行修改''''====================================================================Private Function ShowPageInfo()Dim str_tmpstr_tmp="页次:"&int_curpage&"/"&int_totalpage&"页 共"&int_totalrecord&"条记录 "&XD_PageSize&"条/每页"ShowPageInfo=str_tmpEnd Function''==================================================================''GetURL 得到当前的URL''更据URL参数不同,获取不同的结果''''==================================================================Private Function GetURL()Dim strurl,str_url,i,j,search_str,result_urlsearch_str="page="strurl=Request.ServerVariables("URL")Strurl=split(strurl,"/")i=UBound(strurl,1)str_url=strurl(i)''得到当前页文件名str_params=Trim(Request.ServerVariables("QUERY_STRING"))If str_params="" Thenresult_url=str_url & "?page="ElseIf InstrRev(str_params,search_str)=0 Thenresult_url=str_url & "?" & str_params &"&page="Elsej=InstrRev(str_params,search_str)-2If j=-1 Thenresult_url=str_url & "?page="Elsestr_params=Left(str_params,j)result_url=str_url & "?" & str_params &"&page="End IfEnd IfEnd IfGetURL=result_urlEnd Function''===================================================================='' 设置 Terminate 事件。''''====================================================================Private Sub Class_TerminateXD_RS.closeSet XD_RS=nothingEnd Sub''====================================================================''ShowError 错误提示''''''====================================================================Private Sub ShowError()If str_Error <> "" ThenResponse.Write("" & str_Error & "")Response.EndEnd IfEnd SubEnd classset 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''返回Recordsetset rs=mypage.getrs()''显示分页信息,这个方法可以,在set rs=mypage.getrs()以后,可在任意位置调用,可以调用多次mypage.showpage()''显示数据Response.Write("<br/>")for i=1 to mypage.pagesize''这里就可以自定义显示方式了if not rs.eof thenresponse.write rs(0) & "<br/>"rs.movenextelseexit forend ifnext%>[Ctrl+A 全部选择 然后拷贝]