网站首页 手机版
 注册 登录
您现在的位置: 畅无忧设计 >> 网络编程 >> ASP教程 >> 正文
最新文章
· FSO 组件asp生成html静态页面碰到缓存
· asp实现长文章自动分页插件
· 在ASP中访问和更新Cookies集合
· ASP错误提示大全
· 学习ASP的几个观点
· ASP用两级联动下拉列表来显示大类和小
· ASP取当前页面地址和参数
· ASP删除记录的同时删除相关图片
· asp将查询结果导出到excel
· ASP批量导入Excel到Access或者Sql Se
热门文章
 化境ASP无组件上传类 - upload_5xs
 一个获取ACCESS数据库表名以及表名
 asp将查询结果导出到excel
 艾恩ASP无组件上传修改版
 ASP批量导入Excel到Access或者Sql 
 ASP读取数据库的Flash+JS图片切换特
 ASP用两级联动下拉列表来显示大类和
 ASP+JS实现网页歌曲连播、点播功能
 使用ASP重启服务器
 asp批量替换access数据库中指定字段
相关文章
海量数据库ASP完美分页代码
ASP分页类
一个简单易用的ASP分页代码
ASP通用分页源代码
ASP用分页符实现长篇文章手动分页显示
美化过类似动网的ASP分页类
来源:网易博客 更新时间:2011/1/10 11:17:29 阅读次数:
字体:[ ] 我要投稿

<%
'########################################
'===============类开始==============

Const Btn_First="首页" '定义第一页按钮显示样式
Const Btn_Prev="上一页" '定义前一页按钮显示样式
Const Btn_Next="下一页" '定义下一页按钮显示样式
Const Btn_Last="尾页" '定义最后一页按钮显示样式
Const XD_Align="Center" '定义分页信息对齐方式
Const XD_Width="200%" '定义分页信息框大小

Class ShowMorePage
Private Obj_Conn,Obj_Rs,Str_Sql,int_PageSize,Str_Errors,Int_CurPage,Str_URL,Int_TotalPage,Int_TotalRecord


'====================================
'PageSize 属性
'设置每一页的分页大小
'=========================================
Public Property Let PageSize(intvalue)
If IsNumeric(intvalue) Then
int_PageSize=CLng(intvalue)
Else
Str_Errors=Str_Errors & "PageSize的参数不正确"
ShowError()
End If
End Property
Public Property Get PageSize
If int_PageSize="" or (not(IsNumeric(int_PageSize))) Then
PageSize=10
Else
PageSize=int_PageSize
End If
End Property

'=======================================
'GetRS 属性
'返回分页后的记录集
'========================================
Public Property Get GetRs()
if Int_TotalRecord= 0 then Call GetPage()
If not(Obj_Rs.eof and Obj_Rs.BOF) Then
if Int_CurPage<>1 then
if Int_CurPage-1<Int_TotalPage then
Obj_Rs.move (Int_CurPage-1)*PageSize
dim bookmark
bookmark=Obj_Rs.bookmark
else
Int_CurPage=1
end if
end if
End If
Set GetRs=Obj_Rs
End Property

'======================================
'GetCurPageNum 属性
'返回当前页的记录集数目
'========================================
Public Property Get GetCurPageNum()
dim int_PageNum
int_PageNum = int_PageSize
if Int_TotalRecord= 0 then Call GetPage()
If Int_CurPage>Int_TotalPage Then
Int_CurPage=Int_TotalPage
int_PageNum = Int_TotalRecord-(Int_TotalPage-1)*int_PageSize
ElseIf Int_CurPage=Int_TotalPage Then
int_PageNum = Int_TotalRecord-(Int_TotalPage-1)*int_PageSize
End If
GetCurPageNum = int_PageNum
End Property

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

'==========================================
'GetSQL 得到查询语句
'
'==========================================
Public Property Let GetSQL(svalue)
Str_Sql=svalue
End Property


'=========================================
'Class_Initialize 类的初始化
'初始化当前页的值
'
'=========================================
Private Sub Class_Initialize
'========================
'设定一些参数的黙认值
'========================
int_PageSize=10 '设定分页的默认值为10
Int_TotalRecord= 0
'========================
'获取当前面的值
'========================
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
'======================================
'openRS 打开数据集
'有首页、前一页、下一页、末页、还有数字导航
'
'======================================
Private Sub openRS()
Set Obj_Rs=Server.createobject("adodb.recordset")
Obj_Rs.Open Str_Sql,Obj_Conn,1,1
End Sub
'=========================================
'getPage 创建分页导航条
'有首页、前一页、下一页、末页、还有数字导航
'
'=========================================
Private Sub GetPage()
If TypeName(Obj_Rs)<>"Object" Then Call openRS()
Int_TotalRecord=Obj_Rs.RecordCount
If Int_TotalRecord<=0 Then
Str_Errors=Str_Errors & "暂无记录!"
Call ShowError()
End If
If Int_TotalRecord mod PageSize =0 Then
Int_TotalPage = Int_TotalRecord \ int_PageSize
Else
Int_TotalPage = Int_TotalRecord \ int_PageSize+1
End If
If Int_CurPage>Int_TotalPage Then
Int_CurPage=Int_TotalPage
End If
End Sub

'==========================================
'ShowPage 创建分页导航条
'有首页、前一页、下一页、末页、还有数字导航
'
'============================================
Public Sub ShowPage()
Dim str_tmp
Str_URL = GetUrl()
if Int_TotalRecord= 0 then Call GetPage()
'============================================
'显示分页信息,各个模块根据自己要求更改显求位置
'============================================
response.write "<table cellspacing=1 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 "</td></table>"
End Sub

'==========================================
'ShowFirstPrv 显示首页、前一页
'
'
'==========================================
Private Function ShowFirstPrv()
Dim Str_tmp,int_prvpage
If Int_CurPage=1 Then
str_tmp="<td width=60 align=center valign=middle width=60 align=center valign=middle Else
int_prvpage=Int_CurPage-1
str_tmp="<td width=60 align=center valign=middle href="""&Str_URL & "1" & """>" & Btn_First&"</a></td><td width=60 align=center valign=middle href=""" & Str_URL & CStr(int_prvpage) & """>" & Btn_Prev&"</a></td>"
End If
ShowFirstPrv=str_tmp
End Function

'=========================================
'ShowNextLast 下一页、末页
'
'
'=========================================
Private Function ShowNextLast()
Dim str_tmp,int_Nextpage
If Int_CurPage>=Int_TotalPage Then
str_tmp="<td width=60 align=center valign=middle & "</td><td width=60 align=center valign=middle & Btn_Last&"</td>"
Else
Int_NextPage=Int_CurPage+1
'str_tmp="<a href=""" & Str_URL & CStr(int_nextpage) & """>" & Btn_Next&"</a> <a href="""& Str_URL & CStr(Int_TotalPage) & """>" & Btn_Last&"</a>"
str_tmp="<td width=60 align=center valign=middle href=""" & Str_URL & CStr(int_nextpage) & """>" & Btn_Next&"</a></td><td width=60 align=center valign=middle href="""& Str_URL & CStr(Int_TotalPage) & """>" & Btn_Last&"</a></td>"
End If
ShowNextLast=str_tmp
End Function


'===========================================
'ShowNumBtn 数字导航
'每次显示10页
'
'============================================
Private Function showNumBtn()
Dim i,str_tmp,m,n,mystr
m = Int_CurPage - 4
n = Int_TotalPage
if n>1 then
    for i=Int_CurPage-5 to Int_CurPage+5'for i = 1 to 10
        if i<1 then i=1
        if m < 1 then m = 1
        if m > n then
            exit for
        end if
if i=Int_CurPage then
mystr=" else
mystr=" end if
'str_tmp=str_tmp & "[<a href=""" & Str_URL & CStr(i) & """>"&i&"</a>] "
str_tmp=str_tmp&"<td width=20 height=18 align=center valign=middle"& mystr &"><a href=""" & Str_URL & CStr(i) & """><b>"&i&"</b></a></td>"
        m = m + 1
    next
end if
showNumBtn=str_tmp
End Function


'===========================================
'ShowPageInfo 分页信息
'更据要求自行修改
'
'============================================
Private Function ShowPageInfo()
Dim str_tmp
'str_tmp="&nbsp;&nbsp;第<font color=red>"&Int_CurPage&"</font>/"&Int_TotalPage&"页&nbsp;&nbsp;共<font color=red>"&Int_TotalRecord&"</font>条信息&nbsp;&nbsp;每页"&int_PageSize&"条"
str_tmp="<td width=60 align=center valign=middle

ShowPageInfo=str_tmp
End Function
'=============================================
'GetURL 得到当前的URL
'更据URL参数不同,获取不同的结果
'
'==========================================
Private Function GetURL()
Dim strUrl,tmp_URL,i,j,search_str,result_url
search_str="page="

strUrl=Request.ServerVariables("URL")
strUrl=split(strUrl,"/")
i=UBound(strUrl,1)
tmp_URL=strUrl(i)'得到当前页文件名

str_params=Trim(Request.ServerVariables("QUERY_STRING"))
If str_params="" Then
result_url=tmp_URL & "?page="
Else
If InstrRev(str_params,search_str)=0 Then
result_url=tmp_URL & "?" & str_params &"&page="
Else
j=InstrRev(str_params,search_str)-2
If j=-1 Then
result_url=tmp_URL & "?page="
Else
str_lparams=Left(str_params,j)
str_rparams=right(str_params,len(str_params)-j-1)
if InStr(str_rparams,"&")<>0 then
str_rparams=right(str_rparams,len(str_rparams)-InStr(str_rparams,"&")+1)
else
str_rparams = ""
end if
result_url=tmp_URL & "?" & str_lparams&str_rparams&"&page="
End If
End If
End If
GetURL=result_url
End Function

'===========================================
' 设置 Terminate 事件。
'
'===========================================
Private Sub Class_Terminate
Obj_Rs.close
Set Obj_Rs=nothing
Obj_Conn.close
set Obj_Conn = nothing
End Sub
'=============================================
'ShowError 错误提示
'
'
'============================================
Private Sub ShowError()
If Str_Errors <> "" Then
Response.Write("" & Str_Errors & "")
Response.End
End If
End Sub

End class
%>
 
调用说明:

#############类调用样例#################
'分页导航的样式
'<STYLE type=text/css>
'.tableBorder5 {'BORDER-RIGHT: #898e79 1px solid; BORDER-TOP: #898e79 1px solid; BORDER-LEFT: #898e79 1px solid; BORDER-BOTTOM: #898e79 1px solid; BACKGROUND-COLOR: #ffffff'}
'TD.TableTitle1 {'COLOR: #ffffff; BACKGROUND-COLOR: #ff6600'}
'TD.TableTitle2 {'BACKGROUND-COLOR: #ffcc00'}
'TD.TableBody2 {'LINE-HEIGHT: 17px; BACKGROUND-COLOR: #efefef'}
'</STYLE>
'sql语句
'sql=""
'新建类为biz
'Set biz=new ShowMorePage
'得到链接对象
'biz.getconn=conn
'得到sql语句
'biz.getsql=sql
'每页记录显示数量
'biz.pagesize=5
'创建记录集
'set rs=biz.getrs()
'显示分页导航,可随处掉用并可调用多次
'biz.showpage()
'循环
'For i=1 to biz.GetCurPageNum
'显示内容
'rs.movenext
'Next
'释放所有对象
'set rs=nothing
'set biz=nothing

  • 上一篇文章:
  • 下一篇文章:
  • 关于我们 - 联系我们 - 广告服务 - 在线投稿 - 友情链接 - 网站地图 - 版权声明
    CopyRight 2008-2010, CWYDESIGN.COM - 畅无忧设计, Inc. All Rights Reserved
    滇ICP备09005765号