Filoweb.it

Paginazione III


FB TW whatsapp RSS FEED News letter
ASP
Paginazione III


<!--la riga seguente equivale all' include di ADOVB.INC-->

<!-- METADATA TYPE=" typelib" UUID=" 00000206-0000-0010-8000-00AA006D2EA4" NAME=" ADO Type Library" -->



<%



Set objRecordset = Server.CreateObject(" ADODB.Recordset" )

' modificare il path per puntare correttamente al database

strConnection = " Provider=Microsoft.Jet.Oledb.4.0;data source=" & server.mappath(" database.mdb" )



' numero di record che vogliamo mostrare per pagina – utilizziamo una costante

CONST RECORDMAX = 10

' controlla se sia stato passato il parametro <page>, cioè il numero di pagina

If Request.QueryString(" page" ).Count > 0 Then

intPageNum = CInt(Request.QueryString(" page" ))

Else

intPageNum = 1 ' non è stato passato, di default iniziamo dalla prima pagina

End If

With objRecordset

' il seguente è il tipo di cursore più performante – non possiamo però utilizzare la proprietà RecordCount (poco importa, non ci serve in questa sede…)

.CursorType = adOpenForwardOnly

' la localizzazione del cursore di default è lato server, noi la spostiamo sul client

.CursorLocation = adUseClient

' il tipo di Lock più performante

.LockType = adLockReadOnly

' creiamo un buffer di memoria locale - dove verranno stipati i record - uguale a RECORDMAX

.CacheSize = RECORDMAX

.PageSize = RECORDMAX

.Source = " SELECT * FROM tabella"

.ActiveConnection = strConnection

.Open ' eseguiamo la Query

' questo è importante: disconnettiamo il Recordset dalla sorgente dati (cioè il database).

' Uno dei maggiori vantaggi è dato dalla scalabilità: per 100 utenti che " scorrono" le pagine,

' non ci saranno altrettante connessioni e cursori aperti sul server. Per 1000 utenti idem.

Set .ActiveConnection = Nothing

intTotalPages = .PageCount

If NOT .EOF then

' questo è importante: grazie al metodo GetRows dell' oggetto Recordset recuperiamo

' SOLTANTO il numero di record necessari per la pagina e li stipiamo in un array.

.AbsolutePage = intPageNum

arrData = .GetRows(RECORDMAX)

intColsTot = Ubound(arrData,1) ' numero di colonne, cioè di campi

intRowsTot = Ubound(arrData,2) ' numero di righe, cioè di records

End If

End With

' Rilasciamo le risorse

objRecordset.Close:Set objRecordset = Nothing



' Questo ciclo mostra il contenuto dei campi di ciascun record

' ovviamente va adattato e reso meno " spartano" (è qui solo per esempio)

For i = 0 To intRowsTot

Response.Write " <BR>"

For j = 0 To intColsTot

Response.Write " " &arrData(j, i)

Next

Next



' Pagina precedente – mostra una freccia a sinistra

Response.Write " <P>"

If intPageNum > 1 Then

Response.Write( " <a href=" " ?page=" & intPageNum-1 &" " " ><-- </a>" )

End If



' Mostra la pagina corrente in BOLD (non cliccabile) + tutte le altre (cliccabili)

For i = 1 to intTotalPages

If i = intPageNum Then

Response.Write(" <b>" &i&" </b>" )

Else

Response.Write(" <a href=" " ?page=" &i&" " " > " &i&" </a>" )

End If

Next



' Pagina successiva – mostra una freccia a destra

If intPageNum < intTotalPages Then

Response.Write( " <a href=" " ?page=" &intPageNum+1&" " " > --></a>" )

End If



%>
FB TW whatsapp RSS FEED News letter

filoweb.it è il sito personale di Filippo Brunelli
(c) 2017 Filippo Brunelli
Le immagini ed i testi contenuti nel sito filoweb.it sono di proprietà di Filippo Brunelli salvo diversamente indicato.
L'uso delle immagini e del testo è gratuito per uso personale ed è subbordinato alla citazione della fonte.
Brunelli Filippo declina ogni responsabilità per l'uso che viene fatto delle informazioni presenti nel sito filoweb.it.
X
La tua privacy è importante
Utilizziamo, senza il tuo consenso, SOLO cookies necessari alla elaborazione di analisi statistiche e tecnici per l'utilizzo del sito. Chiudendo il Cookie Banner, mediante il simbolo "X" o negando il consenso, continuerai a navigare in assenza di cookie di profilazione. More info

Tutti
Cookie tecnici
I cookie tecnici sono necessari al fine di "effettuare la trasmissione di una comunicazione su una rete di comunicazione elettronica, o nella misura strettamente necessaria al fornitore di un servizio della società dell'informazione esplicitamente richiesto dal contraente o dall'utente a erogare tale servizio" (art. 122, comma 1 del Codice privacy).
Cookie analitici di terze parti
I cookie analytics sono utilizzati al fine di valutare l'efficacia di un servizio della società dell'informazione fornito da un titolare di un sito, per progettare un sito web o contribuire a misurare il "traffico" di un sito web, ovvero il numero di visitatori ripartiti per area geografica, fascia oraria della connessione o altre caratteristiche.
Cookie di profilazione
Sono cookie che creano profili personalizzati relativi all'utente per finalità di marketing, ad esempio il retargeting o advertising sui social network.

FILOWEB.it Piccolo quaderno degli appunti. Argomento: ASP, Titolo:Paginazione III. Altri script riguardano: CSS, Jscript, .net, Classic Asp, HTML, Jquery, varie, url rewrite, pagina protetta da password, ecc. Altro su https://www.filoweb.it