Spesso una query restituisce molte più righe di quelle che possono essere visualizzate in una pagina (ad es. nei motori di ricerca Internet possono esistere migliaia di riferimenti alla parola chiave cercata, e non vengono visualizzati tutti in una pagina).
La paginazione consente di distribuire i risultati di una ricerca su più pagine. ADO supporta la paginazione tramite alcune proprietà dell’oggetto Recordset.
Le proprietà disponibili dell’oggetto Recordset sono:
- PageSize
- PageCount
- AbsolutePage
La proprietà PageSize specifica quanti record devono essere contenuti nella pagina, e tramite la proprietà PageCount è possibile determinare il numero complessivo di pagine.
E’ possibile accedere ad una determinata pagina tramite la proprietà AbsolutePage.
Il programma con un solo file ASP esegue tutta la navigazione.
Costruiamo ad esempio una tabella di prodotti in un Database (ad es. Access). La tabella avrà ad esempio i seguenti campi:
- IDProdotto
- NomeProdotto
- TipoProdotto
- Colore
- Prezzo
Poi riempiamo la tabella con dei dati di esempio e creiamo la pagina Listino.asp in cui inseriremo il codice:
<% Dim DBConn
Set DBConn=Server.CreateObject("ADODB.Connection")
DBConn.Open "Negozio"
Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
RecordsPerPagina = 5
page = Request("page")
if page="" then page=1
strSQL = "SELECT * FROM Prodotti"
objRS.open strSQL, DBConn, 1
objRS.PageSize = RecordsPerPagina
objRS.AbsolutePage = page
If objRS.Eof=True or objRS.Bof=True then
Response.Write "<P>Nessun risultato trovato</P>"
Else
Response.Write ("<center><table border=1><tr>
<th>Nome Prodotto</th><th>Tipo Prodotto</th>
<th>Colore</th></tr>")
For i=1 to RecordsPerPagina
if Not objRS.EOF then
Response.Write("<tr><td>“ & objRS("NomeProdotto") & "</td>")
Response.Write("<td>" & objRS("TipoProdotto") & "</td>")
Response.Write("<td>" & objRS("Colore") & "</td></tr>")
objRS.MoveNext
end if
Next
Response.Write ("</table></center>")
End if
Response.Write "<P><B>Pagine:</B> "
For pag=1 to objRS.PageCount
Response.Write "<A href='Paginazione.asp?page=" & pag & "'>"
Response.Write pag
Response.Write "</A> "
Next
Response.Write "</P>"
objRS.Close
Set objRS=Nothing
DBConn.Close
Set DBConn=Nothing
%>
Per Collegarsi al Database si è usato un System DSN che si chiama Negozio e che contiene tutte le informazioni necessarie per comunicare con il database (cioè il driver, il percorso fisico ed eventuali login e password).
|