Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304

    modifiche alla paginazione

    Ciao a tutti!
    Ho una pagina in cui stampo degli annunci grazie ad uno script di paginazione che prevede, dopo x annunci per pagina, la classica barra di navigazione - 1 2 3 4 - tra le pagine in cui è suddiviso il totale degli annunci. Questo il codice utilizzato:

    codice:
    <div class="pagine">Pagine: 
      <%
      if ag = "" then
      For pag=1 to Rs.PageCount
      if pag = cint(page) then %>
      <span id="paginazione2"><%= pag %> </span> 
      <% else %>
      <span id="paginazione"><%= pag %></span> 
      <% End if
      Next%><span id="tutti"> Tutti gli annunci  </span>
      <% else
      For pag=1 to Rs.PageCount
      if pag = cint(page) then %>
      <span id="paginazione2"><%= pag %> </span> 
      <% else %>
      <span id="paginazione"><%= pag %></span> 
      <% End if
      Next%><span id="tutti"> Tutti gli annunci  </span><% end if %>
    </div>
    Attualmente questa barra di navigazione stampa tanti link - 1 2 3 4 - quante sono le pagine necessarie.
    Vorrei invece che al massimo facesse vedere 7 link, e poi i classici link "successive 7" e "precedenti".
    Mi sapreste dire come modificare questo script?
    Grazie!!!

  2. #2
    in linea di massima il mio sistema è questo

    codice:
    <%
    sk_totalPages = 'qui ci vogliono le pagine totali
    sk_currentPage = 'qui ci vuole la pagina corrente
    skBasePage = "annunci.asp?"
    skBaseAdd = "ag=" & ag
    
    if sk_totalPages > 1 then %> [ <%
    	if sk_currentPage > 1 then
    		if sk_currentPage > 2 then
    			%>&lt;&lt; <%
    		end if
    	%>&lt; <%
    		if sk_currentPage - 3 > 0 then%><%=sk_currentPage-3%> <% end if
    		if sk_currentPage - 2 > 0 then%><%=sk_currentPage-2%> <% end if
    		if sk_currentPage - 1 > 0 then%><%=sk_currentPage-1%> <% end if
    	end if
    	%><%=sk_currentPage%> <%
    	if sk_currentPage < sk_totalPages then
    		if sk_currentPage + 1 < sk_totalPages + 1 then%><%=sk_currentPage+1%> <% end if
    		if sk_currentPage + 2 < sk_totalPages + 1 then%><%=sk_currentPage+2%> <% end if
    		if sk_currentPage + 3 < sk_totalPages + 1 then%><%=sk_currentPage+3%> <% end if
    		%>&gt; <%
    		if sk_currentPage < sk_totalPages - 1 then
    			%>&gt;&gt; <% 
    		end if
    	end if
    %> ]</span><%
    else
    %>1 pagina<%
    end if%>
    i prefissi SK sono riferiti al fatto che è una parte dell'applicazione (mia) SPLIK e i nomi di variabili per me sono sempre quelli

    ricordati di valorizzare sk_currentPage e sk_totalPages con i tuoi valori
    e tutto fila liscio

    inoltre
    skBasePage è la pagina a cui rimandi
    skBaseAdd è una parte aggiuntiva (fissa) da mettere in querystring (nel tuo caso l'ho già impostata ad AG=<%=ag%>)

    se qualcosa non ti è chiaro chiedi pure

    ciao
    san imente saluta

    * http://simonecingano.it *

  3. #3
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304
    Innanzitutto grazie per la risposta!
    Mi spieghi cosa intendi per pagine totali e corrente? :rollo:
    Per totali intendi il numero max (ad esempio 7) di link che vorrei ottenere, ossia Rs.PageSize?
    E per pagina corrente intendi Rs.AbsolutePage?
    scusa per l'ingenuità delle domande, sono alle prime armi..

  4. #4
    chiedere è il primo passo per imparare
    chi ti taccia perchè ti considera ignorante non ha capito nulla di come funziona questo forum

    quindi non farti mai problemi!!!

    ---

    tornando a noi

    per totali intendo il NUMERO TOTALE DI PAGINE
    nel tuo caso dovrebbe essere Rs.PageCount

    per pagina corrente intendo la PAGINA IN CUI TI TROVI
    e come hai detto tu Rs.AbsolutePage

    ---

    nota:
    nel caso PAGECOUNT non fosse disponibile c'è un modo semplice semplice per calcolare quel valore

    PAGECOUNT = excess(TOTALRECORDS / PAGESIZE)

    totalrecords lo prendi da RS.recordcount
    il pagesize lo hai deciso tu, quindi ce l'hai... (numero di record per pagina)

    dove excess è una funzione semplice semplice che ho fatto io

    codice:
    function excess(argValue)
    	if not (int(argValue) = argValue) then argValue = int(argValue)+1
    	excess = argValue
    end function
    ovviamente se il tuo recordset ha la proprietà PAGECOUNT ignora quello che ho scritto
    esistono dei casi in cui alcune proprietà del recordset non sono disponibili
    per ovviare alla possibilità ti ho messo la soluzione alternativa
    spero di non averti fatto troppa confusione come faccio di solito :rollo:
    san imente saluta

    * http://simonecingano.it *

  5. #5
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304
    No davvero, non mi faccio problemi pur di fare un passo avanti nelle mie ancora ridotte conoscenze!
    Magari mi rendo conto che in una comunità così ampia possa capitare di incontrare persone più o meno comprensive e pazienti nei confronti delle lacune altrui, ma tutti, per fortuna, cercano di dare il proprio contributo. Anche io, nel mio "piccolo", provo a ricambiare: è un dovere - e un piacere - se penso a quanti aiuti e suggerimenti, direttamente o indirettamente, ho ricevuto da questo sito e dai suoi abituali visitatori. Quindi ancora grazie, in questo caso anche alla tua "sensibilità"!

    Per quanto riguarda la paginazione....

    Premetto che stiamo parlando di una pagina, annunci.asp, all'interno della quale il codice asp include istruzioni per creare Rs, un recordset per stampare a video gli annunci da db. Questo Rs si basa su una query sql che, con vari IF, può cambiare a seconda di valori che passo in querystring: valori provenienti ad esempio da un motore di ricerca interno, oppure da un link, ecc.. Forse un po' ingarbugliato, ma è il mio primo lavoro in asp!
    Il valore di ag, gestito con skBaseAdd, in realtà è un valore che uso solo in un caso, ossia quando la paginazione deve riferirsi solo agli annunci di una agenzia, non di tutte: ag contiene, eventualmente, il valore l'ID_agenzia. Cioè se voglio vedere gli annunci dell'agenzia X, vengono stampati a video solo i suoi annunci, con conseguente paginazione di questi. I link della paginazione, a questo punto, portano in querystring anche "ag", in modo tale che la query sql tramite cui creo Rs sia riferita a quegli annunci " WHERE ID_agenzia = ' & ag ".

    Infatti, nella mia paginazione c'è un condizionale IF ag = "" ecc...: così ho una paginazione per vedere tutti gli annunci, ed una solo per quelli relativi ad un'agenzia. Quindi skBaseAdd non dovrebbe essere sempre presente nei link.
    Ho pensato quindi di eliminare, per il momento, skBaseAdd dagli href della paginazione.

    Poi c'è la questione legata a Rs.PageCount.
    Se ad esempio scrivo:

    codice:
    sk_totalPages = Rs.PageCount
    sk_currentPage = Rs.AbsolutePage
    Il rusultato della paginazione è:

    Pagine: [ < 2 ]

    dove solo < è un link con href: annunci.asp?page=1

    Per ora mi limito a raccontarti questi miei due tentativi... :rollo:

  6. #6
    affrontiamo il problema con calma

    apri la pagina e dimmi cosa ti scrive come pagine
    (sempre "[ < 2 ]" ???)

    fatto ciò... dopo questo codice

    codice:
    sk_totalPages = Rs.PageCount
    sk_currentPage = Rs.AbsolutePage
    scrivi

    [CODE]
    response.write "TOTALI: " & sk_totalPages & " - CORRENTE: " & sk_currentPage
    response.end
    [CODE]

    e dimmi cosa ti viene a video
    san imente saluta

    * http://simonecingano.it *

  7. #7
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304
    risultato:

    Pagine: TOTALI: 2 - CORRENTE: 2

  8. #8
    perfetto

    dunque in basso dovrebbe stamparti

    [ < 1 2 ]

    dove 2 non è clikkabile, 1 porta alla pagina 1, e < porta alla pagina 1

    o no?
    san imente saluta

    * http://simonecingano.it *

  9. #9
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304
    Risultato:

    Pagine: [ < 2 ]

    Dove 2 non è clikkabile e < porta alla pagina annunci.asp?page=1

    ossia la stessa in cui mi trovo... :master:

  10. #10
    stampami il codice come lo hai implementato... che lo guardiamo

    perchè la funzione che ti ho dato io la uso e non ha problemi
    san imente saluta

    * http://simonecingano.it *

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.