Also ich habe ein Suchformular das Werte an eine serverseitige ASP übergibt und per VBscript die Datenbankabfrage erledigt.
Nun möchte ich aber daß das Ergebnis (max. 500 DS) über mehrere Seiten,wegen besserer Übersichtlichkeit und schnelligkeit,aufgeteilt wird.
Mein Problem dabei ist daß ich zwar z.B. die ersten 30 Datensätze
anzeigen lassen kann und darunter dann (DS/30) Verweise(mit Werten zur Übergabe an das serverseitige Script) auf die nächsten Seiten legen kann, aber was ist wenn sich in der Zeit in der sich der Nutzer die ersten 30 DS anschaut Datensätze hinzukommen oder gelöscht werden.
Dann sind die Werte die in den Verweisen hinterlegt sind im Zweifelsfall falsch.
Hallo,
also im Normalfall wird eine Seitenzahl mitgegeben, die du auf der
empfangsseite ausliest. Etwa so:
<a href="seite.asp?PN=3">Seite 3</a>
Auf der Empfangsseite wird die übergebene Seitenzahl ausgelesen:
<%
Dim intPageSize
intPageSize = 30
Dim intCounter
intCounter = 0
Dim intCurrentPage
intCurrentPage = Fix(Request("PN"))
%>
Dein Recordset-objekt wird mit der Seitengröße 30 geöffnet
und es erfolgt dann eine Prüfung, ob es die angeforderte Seite
auch gibt (Rechnung: objRS.RecordCount / intPageSize)
<%
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.PageSize = intPageSize
objRS.Open ...
If Not objRS.EOF Then
' --- Hier erfolgt die Prüfung, ob die angeforderte Seite größer der Seitenanzahl gesamt ist
intPageCount = objRS.PageCount
If intCurrentPage > intPageCount Then
objRS.AbsolutePage = 1
Else
objRS.AbsolutePage = intCurrentPage
End if
Do While Not objRS.EOF And intCounter < intPageSize
....
objRS.MoveNext
Loop
End if
objRS.Close
Set objRS = Nothing
%>
Danach kannst Du mit folgendem Skript die Links zu den weiteren Seiten ausgeben:
<% For intCounter = 1 To intPageCount %><a href="seite.asp?PN=<%=intCounter%>">Seite <%=intCounter %></a><% Next %>
Auf diese Weise kann es dir ziemlich egal sein, ob in der Zwischenzeit
Sätze hinzugekommen oder gelöscht werden, da die Seiten immer
dynamisch neu aufgebaut werden.
Ich hoffe, Dir damit geholfen zu haben.
Tschau, Stefan