当前位置:96看吧 > 技术文档 > ASP编程 > XDOWNPAGE分页ASP1.50无错版本

XDOWNPAGE分页ASP1.50无错版本

时间:2008/09/11
作者:马文栋
来源:MaWenDong.cn
查看:
标签:asp

使用方法和1.0一样
XDOWNPAGE   ASP版本
版本   1.50
Code by  MaWenDong
Email:   mawendong@msn.com
Web:   http://mawendong.cn
1.5修复的BUG如下
记录在5条以上分页数量出错
数字导航显示数量优化在5页 [1] [2] [3] [4] [5]
增加页面跳转下拉菜单

<%
'===================================================================
'XDOWNPAGE   ASP版本
'版本   1.00
'Code by  zykj2000
'Email:   zykj_2000@163.net
'BBS:   
http://bbs.513soft.net
'本程序可以免费使用、修改,希望我的程序能为您的工作带来方便

'XDOWNPAGE   ASP版本
'版本   1.50
'Code by  MaWenDong
'Email:   
mawendong@msn.com
'BBS:   
http://mawendong.cn
'1.5修复的BUG如下
'记录在5条以上分页数量出错
'数字导航显示数量优化在5页 [1] [2] [3] [4] [5]
'增加页面跳转下拉菜单

'但请保留以上请息
'
'程序特点
'本程序主要是对数据分页的部分进行了封装,而数据显示部份完全由用户自定义,
'支持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 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 Xdownpage
Private 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) Then
  XD_PageSize=CLng(int_PageSize)
Else
  str_error=str_error & "PageSize的参数不正确"
  ShowError()
End If
End Property
Public Property Get PageSize
If XD_PageSize="" or (not(IsNumeric(XD_PageSize))) Then
  PageSize=10     
Else
  PageSize=XD_PageSize
End If
End Property

'=================================================================
'GetRS 属性
'返回分页后的记录集
'=================================================================
Public Property Get GetRs()
Set XD_Rs=Server.createobject("adodb.recordset")
XD_Rs.PageSize=PageSize
XD_Rs.Open XD_SQL,XD_Conn,1,1
If not(XD_Rs.eof and XD_RS.BOF) Then
  If int_curpage>XD_RS.PageCount Then
   int_curpage=XD_RS.PageCount
  End If
  XD_Rs.AbsolutePage=int_curpage
End If
Set GetRs=XD_RS
End Property

'================================================================
'GetConn  得到数据库连接
'
'================================================================
Public Property Let GetConn(obj_Conn)
Set XD_Conn=obj_Conn
End Property

'================================================================
'GetSQL   得到查询语句
'
'================================================================
Public Property Let GetSQL(str_sql)
XD_SQL=str_sql
End Property



'==================================================================
'Class_Initialize 类的初始化
'初始化当前页的值
'
'==================================================================
Private Sub Class_Initialize
'========================
'设定一些参数的黙认值
'========================
XD_PageSize=10  '设定分页的默认值为10
'========================
'获取当前面的值
'========================
If request("page")="" Then
  int_curpage=1
ElseIf not(IsNumeric(request("page"))) Then
  int_curpage=1
ElseIf CInt(Trim(request("page")))<1 Then
  int_curpage=1
Else
  Int_curpage=CInt(Trim(request("page")))
End If
  
End Sub

'====================================================================
'ShowPage  创建分页导航条
'有首页、前一页、下一页、末页、还有数字导航
'
'====================================================================
Public Sub ShowPage()
Dim str_tmp
XD_sURL = GetUrl()
int_totalRecord=XD_RS.RecordCount
If int_totalRecord<=0 Then
  str_error=str_error & "总记录数为零,请输入数据"
  Call ShowError()
End If
If int_totalRecord>0 Then 'int_TotalPage=1
  If int_totalRecord mod PageSize =0 Then
   int_TotalPage = CLng(int_TotalRecord \ XD_PageSize )
  Else
   int_TotalPage = CLng(int_TotalRecord \ XD_PageSize )+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
str_tmp=ShowPageSelect      '页面跳转
response.write str_tmp
response.write ""
End Sub

'====================================================================
'ShowFirstPrv  显示首页、前一页
'
'
'====================================================================
Private Function ShowFirstPrv()
Dim Str_tmp,int_prvpage
If int_curpage=1 Then
  str_tmp="<a href="""&XD_sURL & "1" & """>" & Btn_First&"</a> "
Else
  int_prvpage=int_curpage-1
  str_tmp="<a href="""&XD_sURL & "1" & """>" & Btn_First&"</a> <a href=""" & XD_sURL & CStr(int_prvpage) & """>" & Btn_Prev&"</a>"
End If
ShowFirstPrv=str_tmp
End Function

'====================================================================
'ShowNextLast  下一页、末页
'
'
'====================================================================
Private Function ShowNextLast()
Dim str_tmp,int_Nextpage
If Int_curpage>=int_totalpage Then
  str_tmp=" <a href="""& XD_sURL & CStr(int_totalpage) & """>" & Btn_Last &"</a>"
Else
  Int_NextPage=int_curpage+1
  str_tmp="<a href=""" & XD_sURL & CStr(int_nextpage) & """>" & Btn_Next &"</a> <a href="""& XD_sURL & CStr(int_totalpage) & """>" &  Btn_Last&"</a>"
End If
ShowNextLast=str_tmp
End Function


'====================================================================
'ShowNumBtn  数字导航
'
'
'====================================================================
'Private Function showNumBtn()
' Dim i,str_tmp
' For i=1 to int_totalpage
'  str_tmp=str_tmp & " [<a href=""" & XD_sURL & CStr(i) & """>"&i&"</a>] "
' Next
' showNumBtn=str_tmp
'End Function

'====================================================================
'ShowNumBtn 修改后的数字导航
'
'====================================================================
Function showNumBtn()
Dim i,str_tmp,end_page,start_page
'显示出5个链接,如   [1][2][3][4][5]
if int_curpage>4 then '如果当前页是第5或以后的页数
   if int_curpage+2<int_totalpage then
      start_page=int_curpage-2 '让当前页居中显示
      end_page=int_curpage+2
   else
      start_page=int_totalpage-4
      end_page=int_totalpage
   end if
else  '如果是前面4页
    start_page=1
    if int_totalpage>5 then
     end_page=5
    else
     end_page=int_totalpage
    end if
end if
For i=start_page to end_page
  str_tmp=str_tmp & " <a href=""" & XD_sURL & CStr(i) & """>"&i&"</a> "
Next
showNumBtn=str_tmp
End Function

'====================================================================
'ShowPageSelect  页面跳转
'更据要求自行修改
'
'====================================================================
Private Function ShowPageSelect()
Dim str_tmp
   str_tmp=" <selectif(this.options[this.selectedIndex].value!=''){location=this.options[this.selectedIndex].value;}"">"
     For i=1 to int_totalpage
        str_tmp=str_tmp&"<option value="""&geturl&i&""""
        if int_curpage=i then str_tmp=str_tmp&" selected" 'str_tmp=str_tmp & "["&i&"]" else str_tmp=str_tmp & "<a href="""&geturl&i&""">["&i&"]</a>"
        str_tmp=str_tmp&">"&i&"</option>"
     Next
   str_tmp=str_tmp&"</select>"
ShowPageSelect=str_tmp
End Function
'====================================================================
'ShowPageInfo  分页信息
'更据要求自行修改
'
'====================================================================
Private Function ShowPageInfo()
Dim str_tmp
str_tmp=" <font class=""other"">页次:<b>"&int_curpage&"</b>/"&int_totalpage&"页</font> <font class=""other"">共"&int_totalrecord&"条</font> <font class=""other"">"&XD_PageSize&"条/每页</font>"
ShowPageInfo=str_tmp
End Function
'==================================================================
'GetURL  得到当前的URL
'更据URL参数不同,获取不同的结果
'
'==================================================================
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=Trim(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

'====================================================================
' 设置 Terminate 事件。
'
'====================================================================
Private Sub Class_Terminate  
XD_RS.close
Set XD_RS=nothing
End Sub
'====================================================================
'ShowError  错误提示
'
'
'====================================================================
Private Sub ShowError()
If str_Error <> "" Then
  Response.Write("" & str_Error & "")
  Response.End
End If
End Sub
End class
%>

下载:演示代码

上一篇:无
下一篇:asp程序实现伪静态的代码
页面举报
Report
关闭页面
Close
收藏页面
Favorites
分享页面
Share
版权信息:栏目内,站内会员所分享的全部“资源/素材/文章”,仅供学习与参考,版权为原作者所有。
下载提示:非注册用户每天可下载一个文件,已注册会员不受限制。
网友评论
数据载入中
验证码
  • 请您注意:
  • ·请不要在评论中含与内容无关的广告链接。
  • ·不良评论请用报告管理员,以利管理员及时删除。
  • ·遵守中华人民共和国的各项有关法律法规
  • ·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • ·本站管理人员有权保留或删除评论中的任意内容
  • ·您在本站发表的作品,本站有权在网站内转载或引用
  • ·参与本评论即表明您已经阅读并接受上述条款
相关最新
相关热门