怎样实现分页?

NetWorm 2004-01-31 10:36:27
我有一个表,它的数据是不确定的,可能是10条,也可能100条,
我现在要实现的功能是分页,每页显示十条,然后有个前一页和后一页,最后一页,第一页的按钮。
例子:
strDSN = "SYSTEMDSN=xxx.dsn"
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DSN=smswww;UID=smswww;PWD=softinfosms"
Set rs = Server.CreateObject("ADODB.Recordset")

strSQL = "SELECT answertime,player,answerinfo FROM coop_gs_yr_winner_answerinfo where datediff(hour, answertime, getdate()) <24 and answerinfo != 'xtdyj'"
rs.Open strSQL, conn

Set objwishtime = rs("answertime")
Set objplayer = rs("player")
Set objwishinfo = rs("answerinfo") %>
...全文
121 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
islandnet 2004-01-31
  • 打赏
  • 举报
回复
分也好多种,建议真正读懂。再去应用。感觉分页只要是asp,都会运用到。很重要。
jasonast 2004-01-31
  • 打赏
  • 举报
回复
http://www.blueidea.com/tech/program/2003/1498.asp
jasonast 2004-01-31
  • 打赏
  • 举报
回复
<%
'#########声明变量#########
'定义链接的显示类型
Const SW_intShowChinese = 0 '汉字,如"上一页、下一页"
Const SW_intShowEnglish = 1 '英文,如"Back、Next"
Const SW_intShowCharacter = 2 '特殊字符
'定义数据的显示类型
Const SW_intHorizontalView = 0 '横排
Const SW_intVerticalView = 1 '竖排
'线的显示类型
Const SW_intShowBigBorder = 2 '粗线
Const SW_intShowSmallBorder = 1 '细线
Const SW_intShowNoBorder = 0 '无线

'标题栏线的显示类型
Const SW_intTleSmallBorder = 1 '细线
Const SW_intTleNoBorder = 0 '无线

'显示分页信息的位置
Const SW_intPageInNone = 0 '不显示分页条
Const SW_intPageInTop = 1 '在顶部显示
Const SW_intPageInBottom = 2 '在底部显示
Const SW_intPageInAll = 3 '在顶、底部显示

'显示的页数的数字个数
Const SW_intShowPages = 10

'SWPage Class
Private SW_blnIsHaveRS,SW_strFields,SW_blnInConn,SW_intShowPagePos,SW_strShowWidth
'#########初始化变量##########
SW_blnIsHaveRS = false '设置记录集获取标志为Fasle,就是无记录集状态
SW_strShowWidth = "90%" '默认的显示宽度为90%
SW_strFields = ""
SW_blnInConn = true '由内部创建Connection,如果设为False则由外部创建
SW_intShowPagePos = SW_intPageInAll


'*****************************************
' 类型: 类
' 目的: 给记录集分页
'*****************************************
Class SWPage
'声明类私有变量
Private SW_objRS,SW_objConn

Private SW_strSQL,SW_strURL,SW_strError,SW_strFormAction,SW_strHeadJS,SW_strFootJS

Private SW_intPageSize,SW_intTleBDType,SW_intShowPageType,SW_intShowType
Private SW_lngTotalPage,SW_lngTotalRecord,SW_lngPageNo
Private SW_aryFldName,SW_aryFldNote,SW_aryFldWidth,SW_aryFldAlign,SW_aryFldLink
Private SW_blnInit,SW_blnOpenRS,SW_blnConn,SW_blnPageSize,SW_blnFieldList,SW_blnGetURL,SW_blnShowType,SW_blnShowPageType,SW_blnTemplate

'*****************************************
' 类型: 属性
' 目的: 根据获取的信息,创建数据库连接
' 输入: a_strConn:数据类型字符串
' 返回: 无
'*****************************************
Public Property Let Conn(a_strConn)
Dim strError
SW_blnConn = false
Set SW_objConn = CreateObject("Adodb.Connection")
On Error Resume Next
SW_objConn.Open a_strConn
If Err.Number <> 0 Then strError = strError & "<br>创建Connection对象失败"
On Error Goto 0

If Trim(strError)="" Then
SW_blnConn = true
Else
SW_strError = SW_strError & " <tr bgcolor=""#336699"" height=""28""><td><font color=""#FFFFFF"">Conn属性:</font></td></tr>" & vbcrlf
SW_strError = SW_strError & " <tr bgcolor=""#ffffff""><td>" & strError & "</td></tr>" & vbcrlf
End If
End Property

'*****************************************
' 类型: 属性
' 目的: 设定或显示SQL语句。
' 输入: a_strSQL: SQL语句。
' 返回: SQL语句。
'*****************************************
Public Property Let SQL(a_strSQL)
Dim strError

SW_blnOpenRS = false
SW_strSQL = a_strSQL

'创建RecordSet对象
Set SW_objRS = CreateObject("adodb.RecordSet")
On Error Resume Next
SW_objRS.Open SW_strSQL,SW_objConn,1,1
If Err.Number <> 0 Then strError = "<br>记录集打开失败"
On Error Goto 0

If Trim(strError)="" Then
SW_blnOpenRS = true
Else
SW_strError = SW_strError & " <tr bgcolor=""#336699"" height=""28""><td><font color=""#FFFFFF"">SQL属性:</font></td></tr>" & vbcrlf
SW_strError = SW_strError & " <tr bgcolor=""#ffffff""><td>" & strError & "</td></tr>" & vbcrlf
End If
End Property


'*****************************************
' 类型: 属性
' 目的: 设置需要显示的数据的字段名
' 输入: a_strFldName:字段名字符串,多个字段之间以逗号分隔
' 返回: 无
'*****************************************
Public Property Let FieldList(a_strFldName)
Dim strError

SW_blnFieldList = false
If Trim(a_strFldName) <> "" Then
SW_aryFldName = Split(LCase(a_strFldName),",")
Else
strError = strError & "<br>你必须设置需要显示的字段名,否则无法显示数据"
End If
If Trim(strError)="" Then
SW_blnFieldList = true
Else
SW_strError = SW_strError & " <tr bgcolor=""#336699"" height=""28""><td><font color=""#FFFFFF"">FieldList属性:</font></td></tr>" & vbcrlf
SW_strError = SW_strError & " <tr bgcolor=""#ffffff""><td>" & strError & "</td></tr>" & vbcrlf
End If
End Property

'*****************************************
' 类型: 属性
' 目的: 设定或显示每页的记录数。
' 输入: a_intPageSize: 每页显示的记录数。
' 返回: 每页显示的记录数。
'*****************************************
Public Property Let PageSize(a_intPageSize)
Dim strError

'PageSize获取失败标志
SW_blnPageSize = false
If Trim(a_intPageSize) = "" OR (Not(IsNumeric(a_intPageSize))) Then
strError = strError & "<br>非法的pagesize"
Else
If (a_intPageSize <= 2147483647 And a_intPageSize>=-2147483648) Then
SW_intPageSize = CLng(a_intPageSize)
Else
strError = strError & "<br>PageSize溢出"
End If
If (SW_intPageSize<=0) Then
strError = strError & "<br>PageSize只能是正整数"
End If
End If
If Trim(strError)="" Then
SW_blnPageSize = True
Else
SW_strError = SW_strError & " <tr bgcolor=""#336699"" height=""28""><td><font color=""#FFFFFF"">PageSize属性:</font></td></tr>" & vbcrlf
SW_strError = SW_strError & " <tr bgcolor=""#ffffff""><td>" & strError & "</td></tr>" & vbcrlf
End If
End Property
lei4546 2004-01-31
  • 打赏
  • 举报
回复
<%
set rs=server.CreateObject("adodb.recordset")
strpage=request.querystring("page")
if len(strpage)=0 then
strpage="1"
end if
sql="select * from reg"
rs.cursorlocation=3
rs.open sql,conn
if rs.eof then
response.Redirect "../error.asp?error=4"
end if
rs.pagesize=20
select_count=rs.recordcount
select_pagecount=rs.pagecount
rs.absolutepage=cint(strpage)
response.write "共<font color=red><strong>"&select_pagecount&"</strong></font>页<font color=red><strong>"&select_count&"</strong></font>条记录,本页是第<b><font color=red><strong>"&strpage&"</strong></font></b>页."
if int(strpage)>1 then
response.write " <a href='showmember.asp?page="&cstr(cint(strpage)-1)&"'>上一页</a>"
end if
if int(strpage)<select_pagecount then
response.write " <a href='showmember.asp?page="&cstr(cint(strpage)-1)&"'>下一页</a>"
end if
for ii=1 to rs.pagesize
if rs.eof then
exit for
end if
%>
NetWorm 2004-01-31
  • 打赏
  • 举报
回复
<% Do Until rs.EOF %>
<tr>
<td><% Response.Write objwishtime %></td>
<td><% Response.Write objplayer %></td>
<td><% response.write objwishinfo %></td>
<td><input name="submit" type="button" onClick="MM_openBrWindow('reply.asp?usernum=<%=objplayer%>','xxxx','width=400,height=200')" value="回复"></td>
<%
rs.MoveNext
Loop %>

28,405

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧