Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Paginazione errata

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630

    Paginazione errata

    Carissimi,
    sto testando questo script, trovato sul web, per la paginazione numerica stile google, ma ho notato un errore che non so da dove derivi ecco lo script
    codice:
    <%
    '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)
    %>
    In pratica cliccando sui numeri delle altre pagine invece di apparirmi i classici numeri delle pagine tipo: 10 11 12 etc
    ho queste numerazioni 10,5 11, 12,5 etc, senza nessun criterio.
    Potete visionare lo script in azione a questo link:

    http://www.cosenza1special.it/pp.asp

    Potete aiutarmi, grazie
    G.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Nessun aiuto??

  3. #3
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    pare un problema legato a
    indice_inizio = pag-(Numerazione_Max/2)
    visto che per Numerazione_Max hai stabilito un numero dispari (7) ci sarà uno 0.5 "in più"

    prova a stabilire un numero intero o a modificare il risultato in numeri interi (CInt)

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 © 2025 vBulletin Solutions, Inc. All rights reserved.