View Full Version : Paginazione Asp... Aiutate un principiante...
Freud1856
06-04-2005, 16:17
Che dire... inizio ora a studiare asp, vorrei sapere come faccio a visualizzare solo alcune news (es. 10) in questo script.
<%
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("/mdb-database/database.mdb")
sqlstmt = "SELECT * FROM journal ORDER BY id DESC"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sqlstmt, DSNtemp, 3, 3
TotalRecs = rs.recordcount
x = 0
For x = 1 to 9999
If rs.eof then
Exit For
Else
date1 = rs("pdate")
id = rs("ID")
name1 = rs("pname")
link = "<a href='view.asp?id=" & id & "'>" & date1 & "</a>"
description = name1
%>
<tr>
<td width="415" bgcolor="#C0C0C0"><font face="Verdana" size="2"> <% =link%> -- <% =description%></font></td>
</tr>
<%
rs.MoveNext
End If
Next%>
premetto io non conosco vb e di conseguenza neanche asp anche se qualche volta o provato a usarlo,
ma mi viente spontaneo risponderti perchè questa è una cosa molto semplice...
il
For x = 1 to 9999
non mi sembra un ciclo molto corretto, dovresti mettere altre condizioni, comunque per visualizzare solo le prime venti righe qui ti e sufficente scrivere cosi
For x = 1 to 20
la cosa più corretta comunque per il ciclo dovrebbe essere una cosa del genere:
while rs.eof do
Ciao.
Futuregames
06-04-2005, 17:34
Originariamente inviato da Freud1856
Che dire... inizio ora a studiare asp, vorrei sapere come faccio a visualizzare solo alcune news (es. 10) in questo script.
<%
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("/mdb-database/database.mdb")
sqlstmt = "SELECT * FROM journal ORDER BY id DESC"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sqlstmt, DSNtemp, 3, 3
TotalRecs = rs.recordcount
x = 0
For x = 1 to 9999
If rs.eof then
Exit For
Else
date1 = rs("pdate")
id = rs("ID")
name1 = rs("pname")
link = "<a href='view.asp?id=" & id & "'>" & date1 & "</a>"
description = name1
%>
<tr>
<td width="415" bgcolor="#C0C0C0"><font face="Verdana" size="2"> <% =link%> -- <% =description%></font></td>
</tr>
<%
rs.MoveNext
End If
Next%>
io ti consiglio... dopo fai quello che vuoi... impara php te lo consiglio asp no:)
Freud1856
06-04-2005, 17:46
Originariamente inviato da tglman
premetto io non conosco vb e di conseguenza neanche asp anche se qualche volta o provato a usarlo,
ma mi viente spontaneo risponderti perchè questa è una cosa molto semplice...
il
For x = 1 to 9999
non mi sembra un ciclo molto corretto, dovresti mettere altre condizioni, comunque per visualizzare solo le prime venti righe qui ti e sufficente scrivere cosi
For x = 1 to 20
la cosa più corretta comunque per il ciclo dovrebbe essere una cosa del genere:
while rs.eof do
Ciao.
Grazie per la risposta :)
Però con il tuo suggerimento ottengo solo una riduzione dei messaggi visualizzati (non più tutti, ma, as esempio, 20). La mia richiesta era (è) riferita a come poter visualizzare tutti i messaggi ma su più pagine (pagina1, pagina2 etc.)
il discorso "while rs.eof do " invece non l'ho capito... :confused: :cry:
massmagic
06-04-2005, 18:45
<%
dim strConn
strConn="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath ("/mdb-database/database.mdb")
dim DBConn
set DBConn = Server.CreateObject("ADODB.Connection")
DBConn.Open strConn
dim ElencaNewsSQL
ElencaNewsSQL = "SELECT * FROM journal ORDER BY id DESC"
dim ElencaNewsRS
set ElencaNewsRS = Server.CreateObject("ADODB.Recordset")
const adOpenStatic = 3
ElencaNewsRS.Open ElencaNewsSQL, DBConn, adOpenStatic
if not ElencaNewsRS.EOF then
ElencaNewsRS.PageSize = 10 'Numero di record da visualizzare per pagina
ElencaNewsRS.AbsolutePage = Page 'Questa è la pagina che vorresti visualizzare.. se scegli pagina 1 vedrai i record da 1 a 10
end if ' se scegli pagina 2 vedrai i record da 11 a 20 e così via ok?
dim i,date,name,link
for i = 1 to ElencaNewsRS.PageSize
if ElencaNewsRS.EOF then exit for
date = ElencaNewsRS("pdate")
id = ElencaNewsRS("id")
name = ElencaNewsRS("pname")
link = "<a href='view.asp?id=" & id & "'>" & date & "</a>"
%>
<table border="1">
<tr>
<td width="415" bgcolor="#C0C0C0"><font face="Verdana" size="2"><%=link%> -- <%=name%></font></td>
</tr>
</table>
<%
ElencaNewsRS.MoveNext
Next
ElencaNewsRS.Close
Set ElencaNewsRS = Nothing
DBConn.Close
Set DBConn = Nothing
%>
Freud1856
06-04-2005, 19:17
Originariamente inviato da massmagic
<%
ElencaNewsRS.MoveNext
Next
ElencaNewsRS.Close
Set ElencaNewsRS = Nothing
DBConn.Close
Set DBConn = Nothing
Ho provato il codice che mi hai suggerito ma mi si presenta un errore:
Microsoft VBScript compilation error '800a041f'
Unexpected 'Next'
Abbiate pazienza... cerco di capire :(
Cmq mi hai aiutato molto per capire alcune cose.. grazie ;)
massmagic
06-04-2005, 22:32
non ho incollato per sbaglio il tag iniziale di e il tag finale del codice asp.. cmq ora ti correggo il codice...
Freud1856
07-04-2005, 10:36
:confused: :confused: :confused:
massmagic
07-04-2005, 13:05
li ho messi in grassetto..
Freud1856
09-04-2005, 14:46
:eek: :eek: :eek: :eek:
sconcertante che non me ne sia accorto..... :muro:
Grazie mille! mi sarà utile...
Un ultima cosa: lo script che mi hai dato permette di scegliere quale pagina far visualizzare agli utenti. E' complicato modificare lo script in modo tale che siano gli utenti ad effettuare questa scelta?
(del tipo: " << succ. 1 2 3 4 prec. >> " )
Grazie per l'aiuto che mi hai dato!!! :)
massmagic
09-04-2005, 16:29
certo devi usare una query string
sostituisci
ElencaNewsRS.AbsolutePage = Page
con
ElencaNewsRS.AbsolutePage = Request.Querystring("page")
dopo per passare il valore ad absolutepage
devi scrivere nel url
http://www.sito.it/elenca.asp?page=1
http://www.sito.it/elenca.asp?page=2
http://www.sito.it/elenca.asp?page=3
e così via..
in pratica è come se impostassi una variabile nell'url chiamata page
per ritirare il valore di questa variabile presente nell url si utilizza
Request.Querystring("nome_variabile")
nel nostro caso la variabile che ho impostato nell url è "page"
http://www.sito.it/elenca.asp?page=3
quindi per ritirare il valore di page userò Request.Querystring("page")
poi la barra di navigazione te la dovrai creare tu utilizzando la tecnica che ti ho appena spiegato..
spero di essere stato chiaro...
bye
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.