> > Articoli
> > DataBase
Paginazione con numerazione
Abbiamo già visto insieme come paginare i risultati delle nostre query; nell'applicazione che vedremo in questo articolo, analizzeremo come impaginare i link alle altre pagine in modo differente, numerando i link alle pagine adiacenti alla corrente. Il principio rimane sempre lo stesso, utilizzando cioè le proprietà dei recordset.
<%
'Numero di record visualizzati per pagina
Record_Pagina = 20
'Numero di Pagine visualizzate nei link
Numerazione_Max = 7
'Creo la connessione al database
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open .......
'Scrivo la mia query sql
sql = "SELECT * FROM nome_tabella"
'E creo il recordset
Set Rec = Server.CreateObject ("ADODB.Recordset")
Rec.PageSize = Record_Pagina
Rec.Open sql, Conn, 3, 3
'Recupero il numero della pagina corrente
Pag = CInt(Request.Querystring("pag"))
'Controllo che il numero di pagina sia corretto
If (Not Rec.Eof) Then
If Pag>Rec.PageCount Then
Pag = Rec.PageCount
End If
If Pag = 0 Then
Pag = 1
End If
'Setto la pagina corrente
Rec.AbsolutePage = Pag
'Ora prepariamo i link alle pagine
indice_inizio = pag-(Numerazione_Max/2)
If (indice_inizio>(Rec.PageCount-Numerazione_Max)) Then
indice_inizio = Rec.PageCount-Numerazione_Max+1
End If
If (indice_inizio<=0) Then
indice_inizio = 1
End if
indice_fine=indice_inizio+Numerazione_Max-1
If (indice_fine>Rec.PageCount) Then
indice_fine = Rec.PageCount
End If
'Link alla prima pagina
Link = "<a href=""?pag=1""><|</a> "
'Link alle pagine precedenti
If (indice_inizio<>1) Then
Link=Link&"<a href=""?pag="&(indice_inizio-1)&""">... "
End If
For i=indice_inizio to indice_fine
'Pagina attuale
If (i=pag) then
Link = Link&"<b>]"&i&"[</b> "
'Link alle altre pagine
Else
Link = Link&"<a href=""?pag="&i&""">["&i&"] "
End If
Next
'Link alle pagine successive
If (indice_fine<Rec.PageCount-1) Then
Link = Link&"<a href=""?pag="&(indice_fine+1)&""">... "
End If
'Link all'ultima pagina
Link=Link&"<a href=""?pag="&Rec.PageCount&""">|> "
End If
'I link sono pronti,ora stampiamo i record ..
i=0
While (NOT rec.EOF)and(i<Record_Pagina)
i = i+1
Response.Write( rec("NOME_CAMPO")&"<br>" )
rec.MoveNext
WEnd
'e ora finalmente stampiamo i link alle altre pagine
Response.Write(Link)
%>
Naturalmente possiamo personalizzare facilmente i link con altri simboli o immagini a nostro piacimento.
 |
Copyright © 2001-2012 ASPCode.it
- Riproduzione vietata - v. 3.0
- Capitani Paolo - P.IVA: 03300740408
- Contact
|
 |