asp - asp.net - aspcode.it

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

  > > Articoli

Dividere il risultato di una Query in più pagine

Data di pubblicazione: 22/04/2001        Voto della community: 4,32 (Votanti: 22)


Molto spesso capita che il risultato di una query su un database contenga un numero notevole di record e si renda perciò necessario dividerlo in più pagine; in questo articolo illustrerò un metodo rapido per fare ciò che sfrutta le proprietà dei recordset.

Supponiamo, per esempio, di avere un database Access contenente gli iscritti ad una mailing list, e di voler visualizzare tutti gli iscritti sul nostro browser; poniamo di voler visualizzare 5 iscritti in ogni pagina. Il codice del file, che chiameremo list.asp, è qui di seguito visualizzato:

<%
'Creiamo la connessione al database
Dim Conn
Set Conn = Server.CreateObject ("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&_
          server.MapPath("maillinglist.mdb")

'Rileviamo la pagina da visualizzare dalla stringa dell'URL
pag = TRIM(Request.QueryString("pag"))
If pag="" Then
  pag = 1
Else
  pag = CInt(pag)
End If

'Creiamo la stringa sql
Dim sql
sql = "SELECT * FROM Tabella_Iscritti"
Dim rs
Set rs = Server.CreateObject ("ADODB.Recordset")
'Settiamo il numero di record per pagina
rs.PageSize = 5
rs.Open sql, conn, 3, 3
rs.AbsolutePage = pag

'Ora stampiamo gli indirizzi su schermo
For i=1 to rs.PageSize
  Response.Write( rs("NOME")&"<br>" )
  rs.MoveNext
  If rs.EOF Then Exit For
Next

'Prepariamo i link per le altre pagine della lista
If ( pag > 1) Then
  Response.Write("<a href=""list.asp?pag=" &pag-1& """>Pagina precedente</a>")
End If
If ( pag < rs.PageCount ) Then
  Response.Write( "<a href=""list.asp?pag=" &pag+1& """>Pagina successiva</a>")
End If
%>

Nell'esempio abbiamo sfruttato alcune proprietà dei recorset:
- PageCount: ci permette di sapere il numero totale delle pagine;
- AbsolutePage: imposta o restituisce la pagina corrente;
- PageSize: consente di impostare il numero di record che si intende visualizzare in ogni pagina.




Utenti connessi: 3237