Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

[ASP] Paginazione

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

[ASP] Paginazione

Messaggioda Rumez » ven lug 15, 2005 5:11 pm

Questo è il codice che uso per la paginazione:

*************************************************************
<%
on error resume next

dim conn
dim rs
obg = Request("textfield")
set conn = server.CreateObject("ADODB.Connection")
set rs = server.CreateObject("ADODB.Recordset")

conn.open "DSN=LIBRI"

RecordsPerPagina = 7
page = Request("page")
if page = "" then page=1

SQL = "SELECT * FROM libri WHERE "
Ricerca = Split(Trim(Request("textfield")), " ")
for i = 0 to ubound(Ricerca)
SQL = SQL & " titolo LIKE '%" & Ricerca(i) & "%' OR autore LIKE '%" & Ricerca(i) & "%' OR genere LIKE '%" & Ricerca(i) & "%' AND "
next
SQL = Mid(SQL, 1, Len(SQL)-4)
SQL = SQL & " ORDER BY genere"
response.Write(SQL)

rs.Open SQL, conn, 1, 3

rs.PageSize = RecordsPerPagina
rs.AbsolutePage = page

if rs.EOF=True or rs.BOF=True then
Response.Write("<p align=""center"">LIBRO NON TROVATO! Tentare la ricerca con altri parametri</p>")
else
for i=1 to RecordsPerPagina
if Not rs.EOF then
%>

<tr>
<TD><%=rs(0)%></TD>
<TD width="25%"><%=rs(1)%></TD>
<TD width="25%"><%=rs(2)%></TD>
<TD width="25%"><%=rs(3)%></TD>
<td><a href="modifica2.asp?Id=<%=rs(0)%>"><img src="immagini/modifica.jpg"></a></td>
<td><a href="cancella2.asp?Id=<%=rs(0)%>" onClick="return elimina()"><img src="immagini/elimina.jpg"></a></td>
</tr>

<%
rs.movenext
End If
Next
End If

Response.Write("</table>")
Response.Write("<p align='center'>Pagine: ")
for pag = 1 to rs.PageCount
Response.Write(" <a href='find.asp?page=" & pag)
Response.Write("&" & Server.URLEncode(obg))
Response.Write("'>")
Response.Write(pag)
Response.Write("</a>")
next
Response.Write("</p>")

rs.close
set rs = nothing
conn.close
set conn = nothing
%>
*************************************************************
Quando lo uso per impagninare tutti i record del DB (SELECT * FROM libri ) funziona alla grande...
quando lo uso per mostrtare i risultati di una ricerca (SQL sopra) crea non pochi problemi:
la prima pagina di risultati è corretta, ma quando vado a visualizzare la seconda l'SQL si "spacca" e l'applicazione si pesca tutti i record.
consigli?
Avatar utente
Rumez
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1783
Iscritto il: mar mag 13, 2003 2:08 pm

Messaggioda Leo » ven lug 15, 2005 10:41 pm

Secondo me l'errore è qui:

Codice: Seleziona tutto
Response.Write("&" & Server.URLEncode(obg))


In questo modo non definisci il nome del parametro che stai passando tramite querystring e quindi nella pagina successiva non riesci ad importarlo correttamente.
Credo che la riga corretta sia:

Codice: Seleziona tutto
Response.Write("&textfield=" & Server.URLEncode(obg))


Ah, altra cosa, soprattutto in fase di testing dell'applicazione, ti consiglio di non usare la clausola On Error Resume Next, perché in questo modo tutti gli errori vengono ignorati, e rischi di scrivere codice errato senza accorgetene. Personalmente preferisco evitare di usarlo anche in applicazioni già testate...
Leo
Responsabile Tecnico MegaLab.it
Avatar utente
Leo
Silver Member
Silver Member
 
Messaggi: 1683
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda Rumez » sab lug 16, 2005 9:49 am

grazie mille per i consigli..lunedì mattina proverò subito a correggere il codice e poi ti faccio sapere...
Avatar utente
Rumez
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1783
Iscritto il: mar mag 13, 2003 2:08 pm

Messaggioda Rumez » lun lug 18, 2005 8:19 am

avevi proprio ragione leo ed in effetti era anche un errore piuttosto grossolano...sottoscrivo e qui lo configuro che sei un ineguagliabile programmatore in pressoché qualsiasi linguaggio!![applauso]

grazie mille per la consulenza. a buon rendere
ciao
Avatar utente
Rumez
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1783
Iscritto il: mar mag 13, 2003 2:08 pm


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising