Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    216

    Inserire il numero di pagine nei risultati di una query

    Salve.
    Vado subito al dunque: quando visualizzo i records estrapolati tramite una query su una tabella di un db, ho sempre usato i soliti 4 pulsanti per scorrerli tra le pagine : move_next, move_previus, move_last, move_first, i quali fanno visualizzare rispettivamente la pagina seguente, quella precedente, l'ultima e la prima.
    Ora, vorrei fare una cosa tipo Google, cioè vorrei visualizzare tutti i numeri di pagina, ad es. [1], [2], ecc.. e un pulsante AVANTI che se premuto farà visualizzare altre 10 pagine...e così via in 10 pagine alla volta.
    Questo perchè a volte risulta più comodo premere direttamente su un numero di pagina anzicchè scorrerle una per una.
    Dove posso trovare qualche esempio di codice da adattare?

    Grazie
    Max!

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    69
    Non so se ti può essere utile questo

    codice:
    'Creo 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
    	if strNominativo = "" or strNominativo = "TUTTI" then
    		Link = " < Primo :  "
    	else
    		Link = " < Primo :  "
    	end if
    
    	'Link alle pagine precedenti
    	If (indice_inizio<>1) Then
    		if strNominativo = "" or strNominativo = "TUTTI" then
    			Link = Link & "... "
    		else
    			Link = Link & "... "
    		end if
    	End If
    	
    	For i=indice_inizio to indice_fine
    
    		'Pagina attuale
    		If (i=pag) then
    			'if strNominativo = "" or strNominativo = "TUTTI" then
    				Link = Link&" ]"&i&"[  "
    				'Link = Link&" "
    				'Link alle altre pagine
    			'else
    			'	Link = Link&" ]"&i&"&strNominativo="&strNominativo&"""[  "
    			'end if
    		Else
    			if strNominativo = "" or strNominativo = "TUTTI" then
    				Link = Link&"["&i&"] "
    				'Link = Link&"["&i&"] "
    			end if
    		End If
    	
    	Next
    
    	'Link alle pagine successive
    	If (indice_fine<Rec.PageCount-1) Then
    		if strNominativo = "" or strNominativo = "TUTTI" then
    			Link = Link & "... "
    		else
    			Link = Link & "... "
    		end if
    	End If
    
    	'Link all'ultima pagina
    	if strNominativo = "" or strNominativo = "TUTTI" then
    		Link = Link&": Ultimo >"
    	else
    		Link = Link&": Ultimo >"
    	end if
    End If
    bye
    ::CIRMAS::
    http://www.lottointelligente.it
    (il gioco del lotto, previsioni lotto gratis, forum lotto, spazio personale utenti)
    http://www.commerciobresciano.it (portale annunci)

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    216
    Ciao Cirmas!
    Allora... ho provato ad inserire quelle righe ma non riesco a capire dove devo inserire la stampa a video dei campi dei vari records.
    Ti posto il codice per la connessione che ho aggiunto al tuo. In sintesi, ho aggiunto le prime 4 righe e ho inizializzato "Record_Pagina = 10". Ecco il codice completo:

    <%
    Dim conn, str
    Set conn = Server.CreateObject("ADODB.Connection")
    str = "Provider=Microsoft.Jet.OLEDB.4.0; Data SOurce=" & Server.MapPath("/IdeonaWeb/mdb-database/Ideona.mdb")
    conn.Open str

    'Creo recordset
    Set Rec = Server.CreateObject ("ADODB.Recordset")
    Record_Pagina = 10
    Rec.PageSize = Record_Pagina
    sql = "SELECT * FROM UNIONE"
    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

    'Response.write (Rec.Fields.Item("nome").Value )
    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
    if strNominativo = "" or strNominativo = "TUTTI" then
    Link = " < Primo : "
    else
    Link = " < Primo : "
    end if

    'Link alle pagine precedenti
    If (indice_inizio<>1) Then
    if strNominativo = "" or strNominativo = "TUTTI" then
    Link = Link & "... "
    else
    Link = Link & "... "
    end if
    End If

    For i=indice_inizio to indice_fine

    'Pagina attuale
    If (i=pag) then
    'if strNominativo = "" or strNominativo = "TUTTI" then
    Link = Link&" ]"&i&"[ "
    'Link = Link&" "
    'Link alle altre pagine
    'else
    ' Link = Link&" ]"&i&"&strNominativo="&strNominativo&"""[ "
    'end if
    Else
    if strNominativo = "" or strNominativo = "TUTTI" then
    Link = Link&"["&i&"] "
    'Link = Link&"["&i&"] "
    end if
    End If

    Next

    'Link alle pagine successive
    If (indice_fine<Rec.PageCount-1) Then
    if strNominativo = "" or strNominativo = "TUTTI" then
    Link = Link & "... "
    else
    Link = Link & "... "
    end if
    End If

    'Link all'ultima pagina
    if strNominativo = "" or strNominativo = "TUTTI" then
    Link = Link&": Ultimo >"
    else
    Link = Link&": Ultimo >"
    end if
    End If

    %>
    ---------------------------------------------------

    ora, dove inserisco i vari "<%=(Rec.Fields.Item("nome").Value)%>" per stampare i vari campi?
    Perchè il codice ora non mi visualizza niente...

    Ciao
    Max!

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    69
    Dunque per far comparire le pagine devi utilizzare questo codice <%Response.Write(Link)%>

    Mentre il codice seguente è per stampare i campi del recordSet creato

    While (not rec.EOF)and(i<Record_Pagina)

    ...[TUO RECORDSET]...

    Rec.MoveNext
    wend

    spero di esserti stato di aiuto

    :quote:
    ::CIRMAS::
    http://www.lottointelligente.it
    (il gioco del lotto, previsioni lotto gratis, forum lotto, spazio personale utenti)
    http://www.commerciobresciano.it (portale annunci)

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    216
    Originariamente inviato da cirmas
    Dunque per far comparire le pagine devi utilizzare questo codice <%Response.Write(Link)%>

    Mentre il codice seguente è per stampare i campi del recordSet creato

    While (not rec.EOF)and(i<Record_Pagina)

    ...[TUO RECORDSET]...

    Rec.MoveNext
    wend

    spero di esserti stato di aiuto

    :quote:
    Ciao!
    Ho provato ad inserire il codice ma mi stampa tutti i 3000 records in 1 sola pagina. Inoltre, non mi stampa i numeri di pagina in fila, cioè 1, 2, 3, ecc.. ma stampa solamente: <Primo: ... : Ultimo >
    Sotto il lunghissimo codice (che mi hai dato nel primo tuo post) ho inserito il seguente codice:

    <table width="479" border="1" align="center">
    <tr>
    <td>Nome</td>
    <td>Marca</td>
    <td>Prezzo</td>
    </tr>

    <%
    While (NOT Rec.EOF) and (i<Record_Pagina)
    %>
    <tr>
    <td><%=(Rec.Fields.Item("nome").Value)%></td>
    <td><%=(Rec.Fields.Item("marca").Value)%></td>
    <td><%=(Rec.Fields.Item("prezzo").Value)%></td>
    </tr>
    <%

    Rec.MoveNext()
    Wend
    %>

    </table>
    <%Response.Write(Link)%>

    ----------------------------------------------

    che appunto crea una tabella, la cui seconda riga si ripete per far visualizzare gli altri records. Alla fine ho inserito la stampa delle pagine. Come mai non va?

    Ciao
    Max!

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.