Überblick
---- Jetzt gibt es viele Artikel, die ASP verwenden, um eine dynamische Pagierung zu erreichen. In tatsächlichen technischen Anwendungen ist die Menge der Originaldaten in der Regel sehr groß, und die Verarbeitung der ursprünglichen Daten ist relativ langsam.
---- Es gibt zwei wichtige Möglichkeiten, um die oben genannten Probleme zu lösen: Eine, die die Abfragebedingungen relativ festgelegt hat, verwenden Sie eine relativ feste Abfragebedingung, um die ursprünglichen Daten zu verarbeiten und eine kleine Datenmenge-Zwischenbibliothek zu generieren. In der Mitte wird die Bibliothek betrieben. Dies verbessert die Leistung des Programms jedoch die Flexibilität des Programms, und der Server muss die ursprünglichen Daten regelmäßig verarbeiten und verwaltet. Eine andere Möglichkeit besteht darin, die Abfrage auf der Serverseite zu speichern. Obwohl dies die Leistung der Abfrage nicht verbessern kann, kann das Server -Terminal schnell reagieren, wenn der Client -Austausch. Die Realisierung des ersten Weges ist relativ einfach.
Implementierungsmethode
---- Speichern Sie die Abfrageergebnisse auf dem Server in einem dynamischen Array, dh ein zweidimensionales dynamisches Array während des Session_onstart-Prozesses. Wenn der Server die vom Client eingereichte Anwendung empfängt, ist der erste Richter, ob die Bewerbung bedingte Anfragen oder eine Seiteänderung ist. das Array.
Programmimplementierung:
---- 1. Definieren Sie zwei dimensionale Array und andere Variablen
Das Folgende ist das Codefragment: Sub session_onstart Dim tempdb () REDIM Preserve tempdb (1,2) Sitzung ("StoredArray") = tempdb 'Definieren Sie ein Sitzungsarray Sitzung ("ipageCount") = 0 Sitzung ("ipageno") = 0 ... ... Ende sub |
---- 2. Rufen Sie das Speichervorgang an, um die Daten zurückzugeben
Das Folgende ist das Codefragment: Sub getrcordset (strbbmc, spcsssj, Strzzsj, Strnodecode, strfxzl) '' Parameter sind Berichtsnamen und verschiedene Einschränkungen Wählen Sie Case strbbmc Fall "Transaktionsübersichtsform" " strcnn = "provider = msdasql; dsn = sqldb; UID = SA; Setzen Sie objcnn = server.createObje ("adodb.Connection"). objcnn.commandtimeout = 99999999 objcnn.ConnectionTimeout = 999999999 objcnn.cursorLocation = adueclient Objcnn.open Strcnn '' öffnen die Verbindung Setzen Sie objrs = server.createObject ("Adodb.recordset") objrs.pageSize = ipageSize objrs.cachesize = ipageSize objrs.open "sszhatmlog '" & spckssj & "' ', '"" "" '"" "" Adlockreadonly, 1 'Führen Sie das Speichervorgang wieder auf die Abfrageergebnisse durch ... ... Ende sub |
---- 3. Speichern Sie die Abfrageergebnisse im dynamischen Array
Das Folgende ist das Codefragment: Sub SravereCordset () Wenn objrs.eof = false dann objrs.movelast Sitzung ("irowcount") = objrs.rcordCount Sitzung ("ifieldCount") = objrs.fields.count Sitzung ("ipageCount") = objrs.pageCount REDIM Preserve Temparray (Sitzung ("IrowCount"), Sitzung ("ifieldCount")) 'Temparray ist ein zweidimensionales dynamisches Array, Definieren Sie seine Größe gemäß der Datensatzmengengröße objrs.movefirst ICOUNT = 0 tun, während objrs.eof = false ICOUNT = ICOUNT + 1 für i = 1 bis seision ("ifieldcount") Temparray (icount, i) = objrs.fields.item (I -1) nächste objrs.Movenext Schleife Sitzung ("StoredArray") = Temparray objrs.close anders Sitzung ("ipageCount") = 0 Ende wenn Ende sub |
---- 4. Datensatzinhalte anzeigen
Das Folgende ist das Codefragment: Sub showrecord () ... ... Localray = session ("StoredArray") IsHowtotal = (ipageCurrent -1) * ipagesize + 1 Irewloop = 1 Tun Sie, warum iwloop <= ipagesize und ishowtotal <= Sitzung ("irowcount") Response.write ("<ter>") für i = 1 bis seision ("ifieldcount") Response.write ("<td>" & Localray (isHowtotal, i)) als nächstes Response.write ("< /tr>) iShowtotal = isHowtotal + 1 Irewloop = irewloop + 1 Schleife Response.write ("< /table>") Wenn ipagecurrent <> 1 und ipagecurrent <Sitzung ("IpageCount") Dann %> <ster> <a href = "db_pag.asp? page = < % = ipagecurrent -1 %> "> vorherige Seite < /a> <a href = "Db_pag.asp? Page = < % = ipageCurrent + 1 %>"> Die letzte Seite < /a> < /center> < % anders Wenn ipageCurrent <> 1 dann dann %> <ster> <a href = "db_pag.asp? page = < % = ipagecurrent -1 %> "> vorherige Seite < /a> < /center> < % Ende wenn Wenn ipageCurrent <Sitzung ("ipageCount") %> <Center> <a href = "db_pag.asp? Seite = < % = IpageCurrent + 1 %> "> Spätere Seite < /a> < /center> < % Ende wenn Ende wenn Ende sub |