(Original vince6799)
Das Paging im ASP-Code ist etwas mühsam. Ich persönlich habe den Paging-Code während des Code-Schreibvorgangs in zwei Funktionen geschrieben. Obwohl die Funktion nicht perfekt ist, sollte sie für allgemeine Anwendungen ausreichen.
<%
'Die Paging-Funktion ist in zwei Funktionen unterteilt
'CalcPage(totalrec,msg_per_page,currentpage,n,rowcount,PageRs) Paging-Berechnungsfunktion
'PageList(ListType,url,querry,Separator,ListLink) Paging-Listenfunktion'Paging-
Berechnungsfunktion
'totalrec Gesamtzahl der Datensatzsätze
'msg_per_page Die Anzahl der auf jeder Seite angezeigten Datensätze. Diese Variable muss vorab beim Aufruf von CalcPage zugewiesen werden.
'currentpage aktuelle Seitenvariable, Sie müssen dieser Variablen im Voraus einen Wert zuweisen, wenn Sie CalcPage aufrufen
'n Gesamtzahl der Seiten
'rowcount legt die Anzahl der Datensätze pro Seite fest
'PageRs-Recordset-Objekt
sub CalcPage(totalrec,msg_per_page,currentpage,n,rowcount,PageRs)
n=0 'Setzen Sie die Seitenzahl auf 0, wenn kein Datensatz vorhanden ist
wenn currentpage="", dann currentpage=0
'PageRs.EOF und PageRs.bof kein Datensatz
'Nicht PageRs.EOF oder Nicht PageRs.BOF aufgezeichnet
wenn nicht PageRs.EOF oder nicht PageRs.BOF dann
totalrec=PageRs.recordcount
PageRs.pagesize=msg_per_page
if totalrec mod msg_per_page = 0 then 'Berechnen Sie die Gesamtzahl der Seiten, Datensatzanzahl: die Gesamtzahl der Datensätze
n = totalrecmsg_per_page 'n:Gesamtzahl der Seiten
anders
n = totalrecmsg_per_page+1
Ende wenn
Wenn nicht isnumeric(currentpage) oder currentpage="", dann currentpage=1
Wenn currentpage <> "", dann
aktuelle Seite = cint (aktuelle Seite)
Ende wenn
wenn currentpage < 1 dann
aktuelle Seite = 1
Ende wenn
wenn currentpage*msg_per_page > totalrec und nicht((currentpage-1)*msg_per_page < totalrec) dann
aktuelleSeite=1
Ende wenn
PageRs.absolutepage = currentpage 'absolutepage: Setzt den Zeiger auf den Anfang einer Seite
rowcount = PageRs.pagesize 'pagesize: Legen Sie die Anzahl der Datensätze für jede Seite fest
Ende wenn
Ende sub
%>
<%
'Paging-Listenfunktion
'URL-Sprungadresse
'Abfrage? Parameter nach ?
'Trennzeichentrennzeichen
'ListType-Paging-Typ
'Typ:0 „Erste Seite | Vorherige Seite | Nächste Seite | Letzte Seite“
'Typ:1 „1 | 2 | 3 | 4 | ..........| Nächste Seite“
'Typ: 2 „Erste Seite | Erste zehn Seiten | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Nächste zehn Seiten | Letzte Seite“
'Stil, der von ListLink-Links
unter PageList(ListType,url,querry,Separator,ListLink)
verwendet wird.
wenn Trennzeichen="" dann Trennzeichen="|"
wenn ListType="" dann ListType="0"
Wählen Sie Fall ListType aus
Fall „0“
Response.write""¤tpage&"/"&n&"page "
Response.write „Gesamtanzahl“&totalrec&“ Informationen “
Wenn aktuelle Seite <= 1, dann
Response.write"Erste Seite "&Separator&" "
Response.write"Vorherige Seite "&Separator&" "
anders
Response.write"<a href=""&url&"?page=1&"&querry&""" class="""&ListLink&""">Erste Seite</a> "&Separator&" "
Response.write"<a href="""&url&"?page="¤tpage-1&"&"&querry&""" class="""&ListLink&""">Vorherige Seite</a> "&Separator&"  ; "
Ende wenn
wenn currentpage = n dann
Response.write"Nächste Seite "&Separator&" "
Response.write"Letzte Seite "
anders
Response.write"<a href=""&url&"?page="¤tpage+1&"&"&querry&""" class="""&ListLink&""">Nächste Seite</a> "&Separator&"  ; "
Response.write"<a href="""&url&"?page="&n&"&"&querry&""" class="""&ListLink&""">Letzte Seite</a> "
Ende wenn
Fall „1“
wenn currentpage < n dann
Response.write"<a href=""&url&"?page="¤tpage+1&"&"&querry&""" class="""&ListLink&""">Nächste Seite</a> "
anders
Response.write"Nächste Seite "
Ende wenn
für i=1 bis n
wenn cstr(i)=cstr(aktuelleSeite), dann
Response.write "<b>"&i&"</b>"&" "&Separator&" "
anders
Response.write"<a href="""&url&"?page="&i&"&"&querry&""" class="""&ListLink&""">"&i&"</a> "&Separator&" "
Ende wenn
nächste
Fall „2“
PageMerCout=10 'Die maximale Anzahl von Seiten, die jedes Mal umgeblättert werden können
'Ermitteln Sie das maximale Seitenzahlensegment des Datensatzes
wenn n mod PageMerCout=0 dann
MaxPageFiled=nPageMerCout
anders
MaxPageFiled=nPageMerCout+1
Ende wenn
'Bestimmen Sie das Seitenzahlensegment, in dem sich die aktuelle Seite befindet
wenn currentpage mod PageMerCout =0 dann
CurrPageFiled=aktuelleSeitePageMerCout
anders
CurrPageFiled=aktuelleSeitePageMerCout+1
Ende wenn
'Ermitteln Sie die maximale Seitenzahl und die minimale Seitenzahl des aktuellen Seitenzahlensegments
MaxPageNo=CurrPageFiled*PageMerCout
MinPageNo=(CurrPageFiled-1)*PageMerCout+1
'Ausgabe „erste Seite | erste zehn Seiten |“
Wenn aktuelle Seite <= 1, dann
Response.write"Erste Seite "&Separator&" "
anders
Response.write"<a href=""&url&"?page=1&"&querry&""" class="""&ListLink&""">Erste Seite</a> "&Separator&" "
Ende wenn
wenn CurrPageFiled<=1 dann
Response.write"Erste zehn Seiten "&Separator&" "
anders
Response.write"<a href=""&url&"?page="&MinPageNo-PageMerCout&"&"&querry&""" class="""&ListLink&""">Die ersten zehn Seiten</a> "&Separator&"  ;"
Ende wenn
'Gibt das aktuelle Seitenzahlensegment aus
für i=MinPageNo bis MaxPageNo
wenn i<=n dann
wenn cstr(i)=cstr(aktuelleSeite), dann
Response.write "<b>"&i&"</b>"&" "&Separator&" "
anders
Response.write"<a href="""&url&"?page="&i&"&"&querry&""">"&i&"</a> "&Separator&" "
Ende wenn
Ende wenn
nächste
'Ausgabe „nächste zehn Seiten | letzte Seite“
if CurrPageFiled>=MaxPageFiled dann
Response.write"Die nächsten zehn Seiten "&Separator&" "
anders
Response.write"<a href=""&url&"?page="&MaxPageNo+1&"&"&querry&""" class="""&ListLink&""">Die nächsten zehn Seiten</a> "&Separator&" "
Ende wenn
wenn currentpage>=n dann
Response.write"Letzte Seite "
anders
Response.write"<a href="""&url&"?page="&n&"&"&querry&""" class="""&ListLink&""">Letzte Seite</a> "
Ende wenn
Ende auswählen
Ende sub
%>