Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Paginazione particolare

    Ciao a tutti, vorrei qualche consiglio sulla paginazione, attualmente uso questa soluzione:
    codice:
    <%
    'recupero la pagina
    page = Request.QueryString("page")
    ' imposto il numero di record per pagina
    perpage = 6
    
    Dim conn
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("mdb-database/fotogallery.mdb")
    sql = "SELECT * FROM foto ORDER BY ID"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn, 3, 3
    
    
    'imposto la variabile in modo da ottenere l'ultima se non ne viene specificata un'altra
    If page = "" then
    page = 1
    End if
    
    'imposto la dimensione della pagina
    Rs.PageSize = perpage
    ' mi sposto all'ultima pagina
    Rs.AbsolutePage = page
    Dim zoom
    dim contatore
    Dim MyString 
    Dim MyArray(6)
    contatore = 0
    'scrivo i link ai 6 record
    For i = 1 to perpage
    If Not Rs.EOF then
    zoom=rs("zoom")
    MyArray(contatore)="a"
    MyString = Join(MyArray,"")
    
    
    
    contatore = contatore+1
    Rs.MoveNext
    end if
    next
    
    'scrivo i numeri delle pagine
    Response.Write "<P class='numerazione'>Pagine: "
    
    For pag = 1 to rs.PageCount
    if CStr(page) = CStr(pag) then
    'grassetto per la pagina corrente
    Response.Write "- <A href='foto.asp?page=" & pag
    Response.write "' class='pag_corrente'>"
    Response.Write pag
    Response.Write "</A> "
    else
    'normale per le altre pagine
    Response.Write "- <A href='foto.asp?page=" & pag
    Response.write "'>"
    Response.Write pag
    Response.Write "</A> "
    end if
    Next
    
    Response.Write "</P>"
    
    'chiudo la connessione
    Rs.Close
    Set Rs = Nothing
    Conn.Close
    Set Conn = Nothing
    %>
    in questo modo ottengo 6 risultati per pagina, e ottengo una una riga con i link a tutte le pagine tipo questa:
    codice:
    1 - 2 - 3 - 4 - 5 - 6 - ecc fino all'ultima
    Ora siccome inizio ad avere un pò troppe pagine rischio che questa numerazione inizi ad essere un pò troppo lunga, quindi pensavo di stampare solo i link alle 5 pagine più vicine: se sono alla pagina 1 vorrei qualcosa di simile
    codice:
    1- 2- 3 - 4 -5 - 6 - ...
    se sono alla pagina 10 invece
    codice:
    ... - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - ...
    Spero di essermi spiegato, avete qualche suggerimento??

  2. #2
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363

    Re: Paginazione particolare

    Con la variabile IntornoPagine puoi stabilire quanti numeri visualizzare prima e dopo la pagina corrente.
    NB. L'ho scritta senza provarla
    codice:
    'scrivo i numeri delle pagine
    Response.Write "<P class='numerazione'>Pagine: "
    
    IntornoPagine = 5
    pagInizio = page - IntornoPagine
    pagFine = page + IntornoPagine
    
    If pagInizio > 1 Then
      Response.Write "1 [...] "
    Else
      pagInizio = 1
    End If
    
    If pagFine < rs.PageCount Then
      Response.Write " [...] 1"
    Else
      pagFine = rs.PageCount
    End If
    
    For pag = pagInizio to pagFine
    if CStr(page) = CStr(pag) then
    'grassetto per la pagina corrente
    Response.Write "- <A href='foto.asp?page=" & pag
    Response.write "' class='pag_corrente'>"
    Response.Write pag
    Response.Write "</A> "
    else
    'normale per le altre pagine
    Response.Write "- <A href='foto.asp?page=" & pag
    Response.write "'>"
    Response.Write pag
    Response.Write "</A> "
    end if
    Next
    
    Response.Write "</P>"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.