1

我有一个活动服务器页面,显示当天的预订。我将 PageSize 设置为 2,因此如果有更多记录,我的显示器每边仅显示 2 个预订。所以实际上我的记录集中有 8 个预订,所以我的 ASP 创建了 4 个页面。

为了说明这一点,我做了一个快照。

展示

如您所见,有 4 个页面,我可以在它们之间切换。有了>我得到接下来的两个预订,有了<我可以得到前两个预订。

我迫切需要的是在 10 秒间隔内自动更改页面。例如:第一页显示 10 秒,然后切换到下一页显示 10 秒,以此类推。如果已到达最后一页,则从第一页重新开始。

我想我需要一个像 Timer 这样的东西,它每 10 秒更改一次页面,如果达到最后一页,则需要一个从第一页再次开始的循环。但我不知道该怎么做。

如果有人可以帮助我,我会很高兴。

到目前为止,我的部分代码:

Option Explicit
'declare variables
Dim Currpage, pageLen, lastNumber, PageRem, PageTen
Dim connection, recordset, sSQL, sConnString, next10, prev10, P
Dim RSPrevPage, RSNextPage, start
Dim thema, rsRaum, displayanzeige, bstatus, raum_id, GebaeudeBezeichnung, HinweisText, KOPPELBESTUHLUNG_ID, raumname
'Get the current page the user is on, if it's the first time they
'visit and the variable 'PageNo' is empty, then 'CurrPage' gets set to 1
'Else the current page variable 'CurrPage' is set to the page number requested
If IsEmpty(Request.Querystring("PageNo")) then
CurrPage = 1
Else
CurrPage = Cint(Request.Querystring("PageNo"))
End If

'the two functions below return the next 10 and prev 10 page number
Function getNext10(num)
pageLen = len(num)
If pageLen = 1 Then
next10 = 10
ElseIf pageLen>1 Then
pageRem = 10
pageTen = right(num, 1)
next10 = num + pageRem - pageTen
End If
getNext10 = next10
End Function

Function getPrev10(num)
pageLen = len(num)
If pageLen = 1 then
prev10 = 1
ElseIf pageLen>1 then
lastNumber = right(num, 1)
prev10 = num - lastNumber - 10
End If
If prev10 = 0 then
prev10 = 1
End If
getPrev10 = prev10
End Function


 Do Until Recordset.AbsolutePage <> CurrPage OR Recordset.Eof


 Recordset.MoveNext
 Loop


'the next 2 lines setup the page number for the "previous" and "next" links
RSNextPage = CurrPage + 1
RSPrevPage = CurrPage -1

'find out the number of pages returned in the recordset
'if the Next10 page number is greater than the recordset page count
'then set Next10 to the recordset pagecount
If Next10 > Recordset.PageCount Then
Next10 = Recordset.PageCount
End If

'the variable start determines where to start the page number navigation
' i.e. 1, 10, 20, 30 and so on. 
If prev10 = 1 AND next10 - 1 < 10 Then
start = 1
Else
start = Next10 - 10
If right(start, 1) > 0 Then
start = replace(start, right(start, 1), "0")
start = start + 10
End If
End If

'This checks to make sure that there is more than one page of results
If Recordset.PageCount > 1 Then
'Work out whether to show the Previous 10 '<<' 
If currpage > 1 Then
response.write("<a href=""paging.asp?PageNo=" & Prev10 & """><<</a> ")
End If
'Work out whether to show the Previous link '<' 
If NOT RSPrevPage = 0 then
response.write("<a href=""paging.asp?PageNo=" & RSPrevPage & """><</a> ")
End If

'Loop through the page number navigation using P as our loopcounter variable 
For P = start to Next10

If NOT P = CurrPage then
response.write("<a href=""paging.asp?PageNo=" & P & """>" & P & "</a> ")
Else
'Don't hyperlink the current page number 
response.write(" <b>" & P & " </b>")
End If
Next
'this does the same as the "previous" link, but for the "next" link
If NOT RSNextPage > Recordset.PageCount Then
response.write("<a href=""paging.asp?PageNo=" & RSNextPage & """>></a> ")
End If

'Work out whether to show the Next 10 '>>' 
If NOT Next10 = Recordset.PageCount Then
response.write(" <a href=""paging.asp?PageNo=" & Next10 & """>>></a>")
End If
4

2 回答 2

2

像这样使用元刷新

<meta http-equiv="refresh" content="10;URL=nextPage.asp" />

中的10content秒数,后跟 a ;,然后是URL=<url>。这是一个常规的 HTML 标签,你应该把它放在你的<HEAD>. 您可以通过 ASP 修改 URL 本身。

于 2012-12-11T07:54:54.177 回答
0

在最后一节中(您已经决定是否放置“下一个”链接),继续使用 ASP 编写脚本标记来调用 javascript 函数:

(from the last section of your code example above)
'Work out whether to show the Next 10 '>>' 
If NOT Next10 = Recordset.PageCount Then
    response.write(" <a href=""paging.asp?PageNo=" & Next10 & """>>></a>")
    response.write("<script type=""text/javascript"" language=""javascript"">goToNextPage(" & Next10 & """);</script>")
End If

这将导致页面调用 javascript 函数“goToNextPage(pageNumber);” 这将接受 Next10 值。因为您仅在已经编写“下一个”链接时才将此脚本标记写入输出流,所以它也只会在有另一个页面要显示时才被调用。

然后在您的 HEAD 部分中,您将添加 javascript 函数来处理请求:

<head>
<script type="text/javascript" language="javascript">
/*
This function accepts the requested page number and then waits 10 seconds before redirecting back to itself with the new "pageNo" value in the query string
*/
function goToNextPage(nextPageNumber)
{
    setTimeout(function(){window.location='paging.asp?pageNo='+nextPageNumber;},10000);
}

</script>
</head>
于 2014-07-02T18:37:31.330 回答