- <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
- <!--#include file="Connections/conn.asp" -->
- <%
- Dim Recordset1
- Dim Recordset1_cmd
- Dim Recordset1_numRows
- Set Recordset1_cmd = Server.CreateObject ("ADODB.Command")
- Recordset1_cmd.ActiveConnection = MM_conn_STRING
- Recordset1_cmd.CommandText = "SELECT * FROM list"
- Recordset1_cmd.Prepared = true
- Set Recordset1 = Recordset1_cmd.Execute
- Recordset1_numRows = 0
- %>
- <%
- Dim Repeat1__numRows
- Dim Repeat1__index
- Repeat1__numRows = 2
- Repeat1__index = 0
- Recordset1_numRows = Recordset1_numRows + Repeat1__numRows
- %>
- <%
- ' *** Recordset Stats, Move To Record, and Go To Record: declare stats variables
- Dim Recordset1_total
- Dim Recordset1_first
- Dim Recordset1_last
- ' set the record count
- Recordset1_total = Recordset1.RecordCount
- ' set the number of rows displayed on this page
- If (Recordset1_numRows < 0) Then
- Recordset1_numRows = Recordset1_total
- Elseif (Recordset1_numRows = 0) Then
- Recordset1_numRows = 1
- End If
- ' set the first and last displayed record
- Recordset1_first = 1
- Recordset1_last = Recordset1_first + Recordset1_numRows - 1
- ' if we have the correct record count, check the other stats
- If (Recordset1_total <> -1) Then
- If (Recordset1_first > Recordset1_total) Then
- Recordset1_first = Recordset1_total
- End If
- If (Recordset1_last > Recordset1_total) Then
- Recordset1_last = Recordset1_total
- End If
- If (Recordset1_numRows > Recordset1_total) Then
- Recordset1_numRows = Recordset1_total
- End If
- End If
- %>
- <%
- ' *** Recordset Stats: if we don't know the record count, manually count them
- If (Recordset1_total = -1) Then
- ' count the total records by iterating through the recordset
- Recordset1_total=0
- While (Not Recordset1.EOF)
- Recordset1_total = Recordset1_total + 1
- Recordset1.MoveNext
- Wend
- ' reset the cursor to the beginning
- If (Recordset1.CursorType > 0) Then
- Recordset1.MoveFirst
- Else
- Recordset1.Requery
- End If
- ' set the number of rows displayed on this page
- If (Recordset1_numRows < 0 Or Recordset1_numRows > Recordset1_total) Then
- Recordset1_numRows = Recordset1_total
- End If
- ' set the first and last displayed record
- Recordset1_first = 1
- Recordset1_last = Recordset1_first + Recordset1_numRows - 1
- If (Recordset1_first > Recordset1_total) Then
- Recordset1_first = Recordset1_total
- End If
- If (Recordset1_last > Recordset1_total) Then
- Recordset1_last = Recordset1_total
- End If
- End If
- %>
- <%
- Dim MM_paramName
- %>
- <%
- ' *** Move To Record and Go To Record: declare variables
- Dim MM_rs
- Dim MM_rsCount
- Dim MM_size
- Dim MM_uniqueCol
- Dim MM_offset
- Dim MM_atTotal
- Dim MM_paramIsDefined
- Dim MM_param
- Dim MM_index
- Set MM_rs = Recordset1
- MM_rsCount = Recordset1_total
- MM_size = Recordset1_numRows
- MM_uniqueCol = "id"
- MM_paramName = "page"
- MM_offset = 0
- MM_atTotal = false
- MM_paramIsDefined = false
- If (MM_paramName <> "") Then
- MM_paramIsDefined = (Request.QueryString(MM_paramName) <> "")
- End If
- %>
- <%
- ' *** Move To Record: handle 'index' or 'offset' parameter
- if (Not MM_paramIsDefined And MM_rsCount <> 0) then
- ' use index parameter if defined, otherwise use offset parameter
- MM_param = Request.QueryString("index")
- If (MM_param = "") Then
- MM_param = Request.QueryString("offset")
- End If
- If (MM_param <> "") Then
- MM_offset = Int(MM_param)
- End If
- ' if we have a record count, check if we are past the end of the recordset
- If (MM_rsCount <> -1) Then
- If (MM_offset >= MM_rsCount Or MM_offset = -1) Then ' past end or move last
- If ((MM_rsCount Mod MM_size) > 0) Then ' last page not a full repeat region
- MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
- Else
- MM_offset = MM_rsCount - MM_size
- End If
- End If
- End If
- ' move the cursor to the selected record
- MM_index = 0
- While ((Not MM_rs.EOF) And (MM_index < MM_offset Or MM_offset = -1))
- MM_rs.MoveNext
- MM_index = MM_index + 1
- Wend
- If (MM_rs.EOF) Then
- MM_offset = MM_index ' set MM_offset to the last possible record
- End If
- End If
- %>
- <%
- ' *** Move To Specific Record: handle detail parameter
- If (MM_paramIsDefined And MM_rsCount <> 0) Then
- ' get the value of the parameter
- MM_param = Request.QueryString(MM_paramName)
- ' find the record with the unique column value equal to the parameter value
- MM_offset = 0
- Do While (Not MM_rs.EOF)
- If (CStr(MM_rs.Fields.Item(MM_uniqueCol).Value) = MM_param) Then
- Exit Do
- End If
- MM_offset = MM_offset + 1
- MM_rs.MoveNext
- Loop
- ' if not found, set the number of records and reset the cursor
- If (MM_rs.EOF) Then
- If (MM_rsCount < 0) Then
- MM_rsCount = MM_offset
- End If
- If (MM_size < 0 Or MM_size > MM_offset) Then
- MM_size = MM_offset
- End If
- MM_offset = 0
- ' reset the cursor to the beginning
- If (MM_rs.CursorType > 0) Then
- MM_rs.MoveFirst
- Else
- MM_rs.Close
- MM_rs.Open
- End If
- End If
- End If
- %>
- <%
- ' *** Move To Record: if we dont know the record count, check the display range
- If (MM_rsCount = -1) Then
- ' walk to the end of the display range for this page
- MM_index = MM_offset
- While (Not MM_rs.EOF And (MM_size < 0 Or MM_index < MM_offset + MM_size))
- MM_rs.MoveNext
- MM_index = MM_index + 1
- Wend
- ' if we walked off the end of the recordset, set MM_rsCount and MM_size
- If (MM_rs.EOF) Then
- MM_rsCount = MM_index
- If (MM_size < 0 Or MM_size > MM_rsCount) Then
- MM_size = MM_rsCount
- End If
- End If
- ' if we walked off the end, set the offset based on page size
- If (MM_rs.EOF And Not MM_paramIsDefined) Then
- If (MM_offset > MM_rsCount - MM_size Or MM_offset = -1) Then
- If ((MM_rsCount Mod MM_size) > 0) Then
- MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
- Else
- MM_offset = MM_rsCount - MM_size
- End If
- End If
- End If
- ' reset the cursor to the beginning
- If (MM_rs.CursorType > 0) Then
- MM_rs.MoveFirst
- Else
- MM_rs.Requery
- End If
- ' move the cursor to the selected record
- MM_index = 0
- While (Not MM_rs.EOF And MM_index < MM_offset)
- MM_rs.MoveNext
- MM_index = MM_index + 1
- Wend
- End If
- %>
- <%
- ' *** Move To Record: update recordset stats
- ' set the first and last displayed record
- Recordset1_first = MM_offset + 1
- Recordset1_last = MM_offset + MM_size
- If (MM_rsCount <> -1) Then
- If (Recordset1_first > MM_rsCount) Then
- Recordset1_first = MM_rsCount
- End If
- If (Recordset1_last > MM_rsCount) Then
- Recordset1_last = MM_rsCount
- End If
- End If
- ' set the boolean used by hide region to check if we are on the last record
- MM_atTotal = (MM_rsCount <> -1 And MM_offset + MM_size >= MM_rsCount)
- %>
- <%
- ' *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters
- Dim MM_keepNone
- Dim MM_keepURL
- Dim MM_keepForm
- Dim MM_keepBoth
- Dim MM_removeList
- Dim MM_item
- Dim MM_nextItem
- ' create the list of parameters which should not be maintained
- MM_removeList = "&index="
- If (MM_paramName <> "") Then
- MM_removeList = MM_removeList & "&" & MM_paramName & "="
- End If
- MM_keepURL=""
- MM_keepForm=""
- MM_keepBoth=""
- MM_keepNone=""
- ' add the URL parameters to the MM_keepURL string
- For Each MM_item In Request.QueryString
- MM_nextItem = "&" & MM_item & "="
- If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
- MM_keepURL = MM_keepURL & MM_nextItem & Server.URLencode(Request.QueryString(MM_item))
- End If
- Next
- ' add the Form variables to the MM_keepForm string
- For Each MM_item In Request.Form
- MM_nextItem = "&" & MM_item & "="
- If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
- MM_keepForm = MM_keepForm & MM_nextItem & Server.URLencode(Request.Form(MM_item))
- End If
- Next
- ' create the Form + URL string and remove the intial '&' from each of the strings
- MM_keepBoth = MM_keepURL & MM_keepForm
- If (MM_keepBoth <> "") Then
- MM_keepBoth = Right(MM_keepBoth, Len(MM_keepBoth) - 1)
- End If
- If (MM_keepURL <> "") Then
- MM_keepURL = Right(MM_keepURL, Len(MM_keepURL) - 1)
- End If
- If (MM_keepForm <> "") Then
- MM_keepForm = Right(MM_keepForm, Len(MM_keepForm) - 1)
- End If
- ' a utility function used for adding additional parameters to these strings
- Function MM_joinChar(firstItem)
- If (firstItem <> "") Then
- MM_joinChar = "&"
- Else
- MM_joinChar = ""
- End If
- End Function
- %>
- <%
- ' *** Move To Record: set the strings for the first, last, next, and previous links
- Dim MM_keepMove
- Dim MM_moveParam
- Dim MM_moveFirst
- Dim MM_moveLast
- Dim MM_moveNext
- Dim MM_movePrev
- Dim MM_urlStr
- Dim MM_paramList
- Dim MM_paramIndex
- Dim MM_nextParam
- MM_keepMove = MM_keepBoth
- MM_moveParam = "index"
- ' if the page has a repeated region, remove 'offset' from the maintained parameters
- If (MM_size > 1) Then
- MM_moveParam = "offset"
- If (MM_keepMove <> "") Then
- MM_paramList = Split(MM_keepMove, "&")
- MM_keepMove = ""
- For MM_paramIndex = 0 To UBound(MM_paramList)
- MM_nextParam = Left(MM_paramList(MM_paramIndex), InStr(MM_paramList(MM_paramIndex),"=") - 1)
- If (StrComp(MM_nextParam,MM_moveParam,1) <> 0) Then
- MM_keepMove = MM_keepMove & "&" & MM_paramList(MM_paramIndex)
- End If
- Next
- If (MM_keepMove <> "") Then
- MM_keepMove = Right(MM_keepMove, Len(MM_keepMove) - 1)
- End If
- End If
- End If
- ' set the strings for the move to links
- If (MM_keepMove <> "") Then
- MM_keepMove = Server.HTMLEncode(MM_keepMove) & "&"
- End If
- MM_urlStr = Request.ServerVariables("URL") & "?" & MM_keepMove & MM_moveParam & "="
- MM_moveFirst = MM_urlStr & "0"
- MM_moveLast = MM_urlStr & "-1"
- MM_moveNext = MM_urlStr & CStr(MM_offset + MM_size)
- If (MM_offset - MM_size < 0) Then
- MM_movePrev = MM_urlStr & "0"
- Else
- MM_movePrev = MM_urlStr & CStr(MM_offset - MM_size)
- End If
- %>
- <%
- if request.QueryString("page")<>"" then
- Recordset1_last=request.QueryString("page")*MM_size
- offset=Recordset1_last-MM_size
- url="?offset="&offset
- response.Redirect(url)
- end if
- %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Untitled Document</title>
- </head>
- <body>
- <%
- While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF))
- %>
- <div><%=(Recordset1.Fields.Item("id").Value)%></div>
- <%
- Repeat1__index=Repeat1__index+1
- Repeat1__numRows=Repeat1__numRows-1
- Recordset1.MoveNext()
- Wend
- %>
- <div> 总数<%=(Recordset1_total)%> 共<%=Recordset1_total/MM_size%>页当前第<%=(Recordset1_last/MM_size)%>页 <a href="<%=MM_moveFirst%>">首页</a> <a href="<%=MM_movePrev%>">上一页</a> <a href="<%=MM_moveNext%>">下一页</a> <a href="<%=MM_moveLast%>">最后一页</a>
- <label>
- <input name="page" type="text" id="page" value="<%=(Recordset1_last/MM_size)%>" size="5" />
- <input name="button" type="submit" id="button" onclick="window.location.href='?page='+page.value" value="go" />
- </label>
- fist<%=(Recordset1_first)%> last<%=(Recordset1_last)%></div>
- </body>
- </html>
- <%
- Recordset1.Close()
- Set Recordset1 = Nothing
- %>
asp的offset的一个go to page
2019-09-23 10:15asp代码网 ASP教程
呵,指定到第几页,用dw自带的生成的东西,我们可以参考他的思想,代码很多垃圾代码
延伸 · 阅读
- 2021-03-13jquery根据锚点offset值实现动画切换
- 2021-03-10jquery用offset()方法获得元素的xy坐标
- 2021-03-05js实现的类似于asp数据字典的数据类型代码实例
- 2021-01-10asp字符串连接符&、多个字符串相加、字符串拼
- 2020-12-18asp和php哪个是主流?用ASP和PHP做网站哪个好?
- 2020-12-17使用limit,offset分页场景时为什么会慢
精彩推荐
- ASP教程
asp 判断上传文件中是否存在危险代码
asp 判断上传文件中是否存在危险代码...
- ASP教程
动网论坛验证码改进 加法验证码(ASPJpeg版)
很多站长都为论坛里太多的垃圾广告抓狂,本程序就是为了对付论坛垃圾广告群发器的。 将验证码改为加法运算,比如验证码显示“25+64等于?”,那么输...
- ASP教程
asp代码实现检测组件是否安装的函数
asp代码实现检测组件是否安装的函数...
- ASP教程
asp知识整理笔记4(问答模式)
继前几篇篇《asp知识整理笔记1》和《asp知识整理笔记2》,《asp知识整理笔记3》新鲜出炉: 23、问题:在ASP文件中读取HTML的表单字段有几种方法? 答:R...
- ASP教程
FSO遍历目录实现全站插马的代码
FSO遍历目录实现全站插马的代码...
- ASP教程
asp生成静态HTML(动态读取)
这样的代码多用于我们没有实现设计生成静态的功能,但又想临时将一些动态页面生成静态的,直接获取动态内容并保存为静态的...
- ASP教程
javascript asp教程第五课--合二为一
两条防线,一个函数: 试问你如何能保证客户端和服务器端具有相同的功能?表单域的验证闪现在我们眼前。别人把你的html复制到另外一个脚本,然后改...
- ASP教程
Discuz!NT 论坛整合ASP程序论坛教程
Discuz!NT 论坛整合ASP程序论坛 实现代码。...