Dieses Paging verwendet den 0-Cursor, der Rs.Open Sql,Conn,0,1 ist. Aber es fühlt sich nicht viel schneller an, 10
Die Paging-Zeit für 10.000 Daten beträgt mehr als 300 Millisekunden.
<%
Klassenseite
Private CurrPage
Private SeiteN
Private URLStr
Private TempStr
Private ErrInfo
PrivateIsErr
Privater TotalRecord
Private TotalPage
Öffentliche PageRs
Private TempA(11)
Privat TempB(8)
'------------------------------------------------ - ---------
Private Sub Class_Initialize()
CurrPage=1'//Die aktuelle Seite wird standardmäßig als erste Seite angezeigt
PageN=10'//Standardmäßig werden 10 Datenelemente auf jeder Seite angezeigt
UrlStr="#"
TempStr=""
ErrInfo="ErrInfo:"
IsErr=False
Sub beenden
Private Sub Class_Terminate()
Wenn IsObject(PageRs) Dann
PageRs.Close
Legen Sie PageRs=Nothing fest
Ende wenn
TempA löschen
TempB löschen
Sub beenden
'------------------------------------------------ - ---------
'//Erhalte die aktuelle Seitenzahl
Öffentliche Eigenschaft Let CurrentPage(Val)
CurrPage=Val
End-Eigenschaft
Öffentliche Eigenschaft Get CurrentPage()
CurrentPage=CurrPage
End-Eigenschaft
'//Ermitteln Sie die Anzahl der auf jeder Seite angezeigten Elemente
Öffentliches Eigentum Let PageNum(Val)
SeiteN=Val
End-Eigenschaft
Öffentliches Eigentum Get PageNum()
PageNum=PageN
End-Eigenschaft
'//URL abrufen
URL für öffentliches Eigentum (Val)
UrlStr=Val
End-Eigenschaft
Öffentliches Eigentum Get URL()
Url=UrlStr
End-Eigenschaft
'//Holen Sie sich die Vorlage
Vermietungstemperatur für öffentliches Eigentum (Wert)
TempStr=Val
End-Eigenschaft
Öffentliches Eigentum Get Temp()
Temp=TempStr
End-Eigenschaft
'------------------------------------------------ - ----------
Public Sub Exec(Sql,ConnObj)
Bei Fehler Weiter fortsetzen
Legen Sie PageRs=Server.CreateObject("ADODB.RecordSet") fest.
PageRs.CursorLocation = 3 'Die Verwendung clientseitiger Cursor kann die Effizienz verbessern
PageRs.PageSize = PageN 'Definieren Sie die Anzahl der Datensätze, die auf jeder Seite des Paging-Datensatzsatzes angezeigt werden
PageRs.Open Sql,ConnObj,0,1
Wenn Err.Number<>0 Dann
Err.Clear
PageRs.Close
Legen Sie PageRs=Nothing fest
ErrInfo=ErrInfo&"Fehler beim Erstellen oder Öffnen des Datensatzes..."
IsErr=True
Response.Write ErrInfo
Antwort.Ende
Ende wenn
TotalRecord=PageRs.RecordCount'//Was ist, wenn es 0 ist?
Wenn TotalRecord>=1, dann
'------------------------------------------------ - --------------------------Start
'//Berechnen Sie die Gesamtzahl der Seiten, Ps, warum nicht PageRs.PageCount verwenden?
'Wenn TotalRecord Mod PageN=0, dann
'TotalPage=PageRs.RecordCountPageN
'Anders
'TotalPage=PageRs.RecordCountPageN
'TotalPage=Abs(Int(TotalPage))
'Ende wenn
TotalPage=PageRs.PageCount
'// Verarbeiten Sie die aktuell empfangene Seitenzahl. Der Standardwert ist 1. Wenn es sich also nicht um einen numerischen Typ handelt, ist sie 1
If IsNumeric(CurrPage) Then
CurrPage=CLNg(CurrPage)
Wenn CurrPage<1, dann ist CurrPage=1
Wenn CurrPage>TotalPage, dann CurrPage=TotalPage
Anders
'//Dim M:M="":IsNumeric(M)=True
CurrPage=1
Ende wenn
'------------------------------------------------ - -------------------------Beenden
Anders
TotalPage=0
CurrPage=1
Ende wenn
'//
PageRs.AbsolutePage = CurrPage 'absolutepage: Setzt den Zeiger auf den Anfang einer Seite
PageRs.PageSize=PageN
Sub beenden
Private Sub Init()
'Private TempA(10)
TempA(1)="{N1}" '//Homepage
TempA(2)="{N2}"'//Vorherige Seite
TempA(3)="{N3}"'//Nächste Seite
TempA(4)="{N4}"'//Letzte Seite
TempA(5)="{N5}"'//Aktuelle Seitennummer
TempA(6)="{N6}"'//Gesamtzahl der Seiten
TempA(7)="{N7}"'//Anzahl der Elemente pro Seite
TempA(8)="{N8}"'//Gesamtzahl der Artikel
TempA(9)="{L}"'//Label des Beginns der Schleife
TempA(10)="{N}"'//Einzelne Beschriftung in Schleife: Seitenzahl
TempA(11)="{L/}"'//Label für das Ende der Schleife
'Private TempB(8)
TempB(1)="Zuhause"
TempB(2)="Vorherige Seite"
TempB(3)="Nächste Seite"
TempB(4)="Letzte Seite"
TempB(5)=CurrPage'//Aktuelle Seitennummer
TempB(6)=TotalPage'//Gesamtzahl der Seiten
TempB(7)=PageN'//Anzahl der Elemente pro Seite
TempB(8)=TotalRecord'//Gesamtzahl der Artikel
Sub beenden
Öffentliche Sub-Show (Stil)
Wenn IsErr=True, dann
Response.Write ErrInfo
Sub verlassen
Ende, wenn
Init() aufgerufen wird
Wählen Sie den Gehäusestil aus
Fall 1
Response.Write StyleA()
Fall 2
Response.Write StyleB()
Fall 3
Response.Write StyleC()
Fall 4
Response.Write StyleD()
Fall anders
ErrInfo=ErrInfo&"Der aktuelle Stil existiert nicht..."
Response.Write ErrInfo
Endauswahl
Sub beenden
Öffentliche Funktion ShowStyle(Style)
Wenn IsErr=True, dann
ShowStyle=ErrInfo
Exit-Funktion
Ende, wenn
Init() aufgerufen wird
Wählen Sie den Gehäusestil aus
Fall 1
ShowStyle= StyleA()
Fall 2
ShowStyle= StyleB()
Fall anders
ErrInfo=ErrInfo&"Der aktuelle Stil existiert nicht..."
ShowStyle=ErrInfo
Endauswahl
Endfunktion
Private Funktion StyleA()
'Startseite Vorherige Seite Nächste Seite Letzte Seite Diese Seite ist Seite 1/20, insgesamt 20 Seiten, 10 Artikel pro Seite und insgesamt 200 Artikel.
'//Paginierungsbeispiel: [Startseite] [Vorherige Seite] [Nächste Seite] [Letzte Seite] [Seite: 4/5 Seiten] [Gesamt 86 Artikel/20 Artikel/Seite] Gehe zu: _ Seite
'//Tag: {N1} {N2} {N3} {N4} ||. Insgesamt: {N8} Datensätze {N6} Seite sind derzeit {N5} Seite {N7} Datensätze pro Seite
Wenn IsEmpty(TempStr) Dann
ErrInfo=ErrInfo&"Die Vorlage ist leer..."
StyleB=ErrInfo
Exit-Funktion
Ende wenn
DiM
Wenn TotalPage>1, dann
Wenn CurrPage>1, dann
M="<a href='"&UrlStr&"Page=1'>"&"Home"&"</a>"
TempStr=Replace(TempStr,"{N1}",M)
M="<a href='"&UrlStr&"Page="&CurrPage-1&"'>"&"Vorherige Seite"&"</a>"
TempStr=Replace(TempStr,"{N2}",M)
Wenn CurrPage<TotalPage, dann
M="<a href='"&UrlStr&"Page="&CurrPage+1&"'>"&"Nächste Seite"&"</a>"
TempStr=Replace(TempStr,"{N3}",M)
M="<a href='"&UrlStr&"Page="&TotalPage&"'>"&"Letzte Seite"&"</a>"
TempStr=Replace(TempStr,"{N4}",M)
Anders
TempStr=Replace(TempStr,"{N3}","Nächste Seite")
TempStr=Replace(TempStr,"{N4}","Letzte Seite")
Ende wenn
Anders
TempStr=Replace(TempStr,"{N1}","Homepage")
TempStr=Replace(TempStr,"{N2}","Vorherige Seite")
M="<a href='"&UrlStr&"Page="&CurrPage+1&"'>"&"Nächste Seite"&"</a>"
TempStr=Replace(TempStr,"{N3}",M)
M="<a href='"&UrlStr&"Page="&TotalPage&"'>"&"Letzte Seite"&"</a>"
TempStr=Replace(TempStr,"{N4}",M)
Ende wenn
Anders
TempStr=Replace(TempStr,"{N1}","Homepage")
TempStr=Replace(TempStr,"{N2}","Vorherige Seite")
TempStr=Replace(TempStr,"{N3}","Nächste Seite")
TempStr=Replace(TempStr,"{N4}","Letzte Seite")
Ende wenn
T=TempStr
T=Replace(T,"{N8}",TotalRecord)
T=Replace(T,"{N6}",TotalPage)
T=Replace(T,"{N5}",CurrPage)
T=Replace(T,"{N7}",PageN)
TempStr=T
StyleA=TempStr
Endfunktion
Private Funktion StyleB()
'Homepage|< 1 2 3 4 5 6 7 >|
'//Tag:{N1} {N2} {L}{N}{L/}{N3}{N4}
Wenn IsEmpty(TempStr) Dann
ErrInfo=ErrInfo&"Die Vorlage ist leer..."
StyleB=ErrInfo
Exit-Funktion
Ende wenn
Dim ForceNum,BackNum'//Die Nummer, die vor und hinter der aktuellen Seite angezeigt wird
ForceNum=5
BackNum=4
DiM
'//Titelseite
M="<a href='"&UrlStr&"Page=1'>"&TempB(1)&"</a>"
TempStr=Replace(TempStr,"{N1}",M)
'//Letzte Seite
M="<a href='"&UrlStr&"Page="&TempB(6)&"'>"&TempB(4)&"</a>"
TempStr=Replace(TempStr,"{N4}",M)
'//Vorherige Seite
M="|<"
Wenn CurrPage-1>=1, dann
M="<a href='"&UrlStr&"Page="&CurrPage-1&"'>"&"|<"&"</a>"
Ende wenn
TempStr=Replace(TempStr,"{N2}",M)
'//Nächste Seite
M=">|"
Wenn CurrPage+1<=TotalPage, dann
M="<a href='"&UrlStr&"Page="&CurrPage+1&"'>"&">|"&"</a>"
Ende wenn
TempStr=Replace(TempStr,"{N3}",M)
'//Loop-Label entfernen
Dimmen Sie N1, N2, N3, N4, N5, N6
Wenn InStr(TempStr,"{L}")>0 Dann
N1=InStr(TempStr,"{L}")
Ende wenn
Wenn InStr(TempStr,"{L/}")>0 Dann
N2=InStr(TempStr,"{L/}")
Ende wenn
Wenn N2<=N1, dann
ErrInfo=ErrInfo&"Fehler in der Schleifenbezeichnung..."
StyleB=ErrInfo
Exit-Funktion
Ende wenn
N3=Mid(TempStr,N1,N2-N1+4)'//Speichervorlagen einschließlich {L}{L/}-Schleifentags
N4=Replace(N3,"{L}","")'//Speichervorlagen, die keine {L}{L/}-Schleifentags enthalten
N4=Ersetzen(N4,"{L/}","")
'//Seitennummernliste
Dimmen Sie FirstPageNum,LastPageNum
Wenn CurrPage-ForceNum<=1, dann
FirstPageNum=1
Seitenliste=""
Anders
FirstPageNum=CurrPage-ForceNum
PageList="... ..."
Ende wenn
Wenn CurrPage+BackNum>=TotalPage, dann
LastPageNum=Gesamtseite
PageList_2=""
Anders
LastPageNum=CurrPage+BackNum
PageList_2="... ..."
Ende wenn
Dim ich
Für I=FirstPageNum To LastPageNum
Wenn I=CurrPage, dann
N5=Ersetzen(N4,"{N}","<b>"&I&"</b>")
N6=N6&N5
Anders
M="<a href='"&UrlStr&"Page="&I&"'>"&I&"</a>"
N5=Ersetzen(N4,"{N}",M)
N6=N6&N5
Ende wenn
Nächste
TempStr=Ersetzen(TempStr,N3,N6)
StyleB=TempStr
Endfunktion
Private Funktion StyleC()
'Homepage|< |<< 1 2 3 4 5 6 7 >>| >|
'//Dieser Stil wird basierend auf StyleB geändert und zwei Tags hinzugefügt: {N9} Vorherige 10 Seiten {N10} Nächste 10 Seiten
'//Tag:{N1}{N2}{N9}{L}{N}{L/}{N10}{N3}{N4}
Dim T
T=StyleB()
'//Die ersten zehn Seiten
M="|<<"
Wenn CurrPage-10>=1, dann
M="<a href='"&UrlStr&"Page="&CurrPage-10&"'>"&"|<<"&"</a>"
Ende wenn
T=Ersetzen(T,"{N9}",M)
M=">>|"
Wenn CurrPage+10<=TotalPage Then
M="<a href='"&UrlStr&"Page="&CurrPage+10&"'>"&">>|"&"</a>"
Ende wenn
T=Ersetzen(T,"{N10}",M)
StilC=T
Endfunktion
Private Funktion StyleD()
'//Dieser Stil wurde basierend auf StyleC geändert
'//Die Gesamtzahl der {N8} Datensätze {N6} Seite beträgt derzeit {N5} Seite {N7} Datensätze pro Seite
'//Homepage|< |<< 1 2 3 4 5 6 7 >>| >|
'//Tag:{N1}{N2}{N9}{L}{N}{L/}{N10}{N3}{N4}
Dim T
T=StyleC()
T=Replace(T,"{N8}",TotalRecord)
T=Replace(T,"{N6}",TotalPage)
T=Replace(T,"{N5}",CurrPage)
T=Replace(T,"{N7}",PageN)
StilD=T
Endfunktion
Endklasse
%>