asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 7997
ASPCode.it - Store

  > > Articoli

Paginazione con numerazione

Data di pubblicazione: 02/10/2002        Voto della community: 4,11 (Votanti: 9)

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.




Utenti connessi: 7997