<
%
'******************************************************************************
'类名:cPage
'功能:ASP分页
'作者:inrg
'说明:http://tb.blog.csdn.net/TrackBack.aspx?PostId=1496450
'******************************************************************************
Class
cPage
Private
page
Public
pagesize
Private
cRs
Private
isEof
Private
Sub
class_initialize() pagesize
=
10
'
初始页大小
isEof
=
False
page
=
Request.QueryString(
"
page
"
)
If
Trim
( page )
=
""
Or
Trim
( page )
=
"
0
"
Then
page
=
1
Else
page
=
cInt
(
Trim
( page ) )
End
If
End Sub
Private
Sub
class_terminate()
set
cRs
=
nothing
set
cCom
=
nothing
End Sub
Public
Sub
setRs( rs )
Set
cRs
=
rs
If
rs.Eof
Then
isEof
=
True
Exit Sub
End
If
cRs.PageSize
=
pagesize cRs.AbsolutePage
=
page
End Sub
'
设置查询字符串
Private
Function
setUrl( querystring,
str
, value )
Dim
maxArr, minArr, i, m, strTmp, bool maxArr
=
Split
( querystring,
"
&
"
) strTmp
=
""
bool
=
True
For
i
=
0
To
Ubound
( maxArr ) minArr
=
Split
( maxArr( i ),
"
=
"
)
If
Trim
( minArr(
0
) )
=
Trim
(
str
)
Then
bool
=
False
minArr(
1
)
=
value
End
If
If
i
=
Ubound
( maxArr )
Then
strTmp
=
strTmp
&
Trim
( minArr(
0
) )
&
"
=
"
&
Trim
( minArr(
1
) )
Else
strTmp
=
strTmp
&
Trim
( minArr(
0
) )
&
"
=
"
&
Trim
( minArr(
1
) )
&
"
&
"
End
If
Next
If
bool
=
True
Then
If
trim
( querystring )
=
""
Then
strTmp
=
Trim
(
str
)
&
"
=
"
&
Trim
( value )
Else
strTmp
=
Trim
( querystring )
&
"
&
"
&
Trim
(
str
)
&
"
=
"
&
Trim
( value )
End
If
End
If
setUrl
=
strTmp
End Function
'
获得跳转页面网址
Public
Function
getUrl( cPage )
Dim
servername, scriptname, serverport, querystring, url servername
=
Request.ServerVariables(
"
SERVER_NAME
"
) scriptname
=
Request.ServerVariables(
"
SCRIPT_NAME
"
) serverport
=
Request.ServerVariables(
"
SERVER_PORT
"
) querystring
=
Request.ServerVariables(
"
Query_String
"
) querystring
=
setUrl(querystring,
"
page
"
, cPage)
If
Trim
( serverport )
=
"
80
"
Then
url
=
"
http://
"
&
Trim
(servername)
&
Trim
(scriptname)
&
"
?
"
&
Trim
(querystring)
Else
url
=
"
http://
"
&
Trim
(servername)
&
"
:
"
&
Trim
(serverport)
&
Trim
(scriptname)
&
"
?
"
&
Trim
(querystring)
End
If
getUrl
=
url
End Function
'
获得分页代码(底部 首页)
Public
Function
getFirstPageStr( firststr )
If
isEof
Then
getFirstPageStr
=
""
Exit Function
End
If
If
page
<=
1
Then
getFirstPageStr
=
"
<a>
"
&
firststr
&
"
</a>
"
Else
getFirstPageStr
=
"
<a href=
"
&
getUrl(
1
)
&
"
>
"
&
firststr
&
"
</a>
"
End
If
End Function
'
获得分页代码(底部 尾页)
Public
Function
getEndPageStr( Endstr )
If
isEof
Then
getEndPageStr
=
""
Exit Function
End
If
If
page
>=
cRs.PageCount
Then
getEndPageStr
=
"
<a>
"
&
Endstr
&
"
</a>
"
Else
getEndPageStr
=
"
<a href=
"
&
getUrl( cRs.PageCount )
&
"
>
"
&
Endstr
&
"
</a>
"
End
If
End Function
'
获得分页代码(底部 上一页)
Public
Function
getBeforePageStr( beforestr )
If
isEof
Then
getBeforePageStr
=
""
Exit Function
End
If
If
page
<=
1
Then
getBeforePageStr
=
"
<a>
"
&
beforestr
&
"
</a>
"
Else
getBeforePageStr
=
"
<a href=
"
&
getUrl( page
-
1
)
&
"
>
"
&
beforestr
&
"
</a>
"
End
If
End Function
'
获得分页代码(底部 下一页)
Public
Function
getNextPageStr( nextstr )
If
isEof
Then
getNextPageStr
=
""
Exit Function
End
If
If
page
>=
cRs.PageCount
Then
getNextPageStr
=
"
<a>
"
&
nextstr
&
"
</a>
"
Else
getNextPageStr
=
"
<a href=
"
&
getUrl( page
+
1
)
&
"
>
"
&
nextstr
&
"
</a>
"
End
If
End Function
'
获得分页代码(底部 下拉)
Public
Function
getGoPageStr( gostr )
If
isEof
Then
getGoPageStr
=
""
Exit Function
End
If
Dim
i,
str
str
=
gostr
&
"
<select name='page' onChange=javascript:document.forms[0].submit()>
"
For
i
=
1
To
cRs.PageCount
If
i
=
page
Then
str
=
str
&
"
<option value=
"
&
i
&
"
selected>
"
&
i
&
"
</option>
"
Else
str
=
str
&
"
<option value=
"
&
i
&
"
>
"
&
i
&
"
</option>
"
End
If
Next
str
=
str
&
"
</select>
"
getGoPageStr
=
str
End Function
End Class
%
>
使用实例:
<
!
--
#include file
=
"
public.asp
"
-->
<
%
set
cn
=
server.CreateObject(
"
ADODB.Connection
"
)
set
rs
=
server.CreateObject(
"
ADODB.Recordset
"
) cn.ConnectionString
=
"
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=pubs;Data Source=.
"
cn.Open rs.Open
"
select * from authors
"
,cn,
1
,
3
set
objTest
=
new
cPage
'
objTest.pagesize = 5 '设置一页显示的条数,默认10条
objTest.setRs( rs ) i
=
objTest.pagesize
while
not
rs.EOF
and
i
>
0
Response.Write rs(
0
)
&
"
<br>
"
i
=
i
-
1
rs.MoveNext wend %
>
<
% Response.Write objTest.getFirstPageStr(
"
|<<
"
)
&
"
<br>
"
'
首页
Response.Write objTest.getBeforePageStr(
"
<<
"
)
&
"
<br>
"
'
上一页
Response.Write objTest.getNextPageStr(
"
>>
"
)
&
"
<br>
"
'
下一页
Response.Write objTest.getEndPageStr(
"
>>|
"
)
&
"
<br>
"
'
最后一页
%
>
<
form
>
<
% Response.Write objTest.getGoPageStr(
"
跳至:
"
)
'
跳转,必须放在Form内
%
>
</
form
>
有什么问题还请大家发表评论!
转载请注明原文地址: https://ibbs.8miu.com/read-14583.html