4 messaggi dal 14 maggio 2005
Aiuto!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Ho un problema che nn riesco a risolvere.
Devo creare una pagina che mi visualizzi i record estratti
e visualizzarmeli in 2 colonne. Fin qui nessun problema....... .
Ma quando vado a cercare di visualizzare 5 record per pagina sempre in 2 colonne
nn funziona.
Lo scorrimento del numero di pagine viene visualizzato ma non i record che voglio (5), ma me li visualizza tutti e se klikko sui numeri delle pagine mi diminuisce e record visualizzati. Cmq posto il codice così capirete meglio.
Perfare aiutatemi............................


<!-- METADATA TYPE="typelib" UUID="00000206-0000-0010-8000-00AA006D2EA4" NAME="ADO Type Library" -->

<%

Dim sc, cn, rs, contatore

sc = ""
sc = sc & "driver={Microsoft Access Driver (*.mdb)};dbq="
sc = sc & Server.MapPath("prova.mdb")


Set cn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")


cn.Open sc
quanti = 5

' RECUPERO IL NUMERO DI PAGINA CORRENTE
' E CONTROLLO CHE NON SIA INFERIORE A 1
pag = Request.QueryString("pag")
If IsNumeric(pag) = False Or pag < 1 Then pag = 1
%>
<html>
<head>
<title>Paginazione a colonne sui record di un db in ASP</title>
</head>
<body>

<table border="1"><tr>
<%
' IMPOSTO A 0 IL CONTATORE
contatore = 0

' APRO IL RECORDSET
rs.Open "SELECT nome FROM prova1 ORDER BY id ASC", cn, 1
rs.PageSize = quanti
rs.AbsolutePage = pag
' ESEGUO IL CICLO
While rs.EOF = False And contatore < quanti
' IMPOSTO LA PAGINAZIONE A 3 COLONNE ED N RIGHE
' IN FUNZIONE DEL NUMERO DI RECORD PRESENTI NEL DB
If contatore = 2 Then
contatore = 0
Response.Write "</tr><tr>"
End If
%>
<td><%=rs("nome")%></td>
<%
rs.MoveNext
' INCREMENTO IL VALORE DEL CONTATORE
contatore = contatore + 1
Wend

%>
</tr></table>
<p align="center">
<%If pag > 1 Then%>
<a href="index1.asp?pag=<%=pag-1%>">Indietro</a>
<%End If%>
<%
Dim x
x = 1
For x = 1 To rs.PageCount
If CInt(pag) <> x Then
%>
[<a href="index1.asp?pag=<%=x%>"><%=x%></a>]
<%
Else
%>
[<a href="index1.asp?pag=<%=x%>"><b><%=x%></b></a>]
<%
End If
Next
%>
<%If rs.EOF = False Then%>
<a href="index1.asp?pag=<%=pag+1%>">Avanti</a>
<%End If%>
</p>

</body>
</html>
<%
' UN PO DI PULIZIA...
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
%>




Per qualsiasi soluzione vi ringrazio anticipatamente
Modificato da Jes82 il 16 luglio 2008 23.40 -
4 messaggi dal 14 maggio 2005
Ho riscritto il codice facendomi uscire un pò di fumo dal cervello, ma cmq ci sono riuscito. Xki è interessato ad una soluzione nel visualizzare record in 2 colonne con impaginazione di massiomo 6 record per pagina potete usufruirne.
Chiaramente va configurato il layout in base alle esegineze ; Questa e una prova. Ciao a tutta la comunity


<!-- METADATA TYPE="typelib" UUID="00000206-0000-0010-8000-00AA006D2EA4" NAME="ADO Type Library" -->
<%

dim col


iPageSize = 6

If Request.QueryString("page") = "" Then
iPageCurrent = 1
Else
iPageCurrent = CInt(Request.QueryString("page"))
End If
%>

<%
set objConn= Server.CreateObject("ADODB.Connection")
objConn.Open ("Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("prova.mdb"))

strSQL = "SELECT * from prova1 order by id asc"
Set objRs = Server.CreateObject("ADODB.Recordset")
objRS.PageSize = iPageSize
objRS.CacheSize = iPageSize
objRS.Open strSQL, objConn, 3, 3

reccount = objRS.recordcount
iPageCount = objRS.PageCount

If iPageCurrent > iPageCount Then iPageCurrent = iPageCount
If iPageCurrent < 1 Then iPageCurrent = 1

If iPageCount = 0 Then
Response.Write "<p><table><td><font face='verdana' size='2' color='#000000'><b>Nessun Record</b></td></table></p>"
Else
objRS.AbsolutePage = iPageCurrent
iRecordsShown = 0
%>

<table border="1" align="center">

<%
col = 1
Do While iRecordsShown < iPageSize And Not objRS.EOF
if col = 1 then
response.write "<tr>"
end if
%>
<td class="foto" valign="middle"><div align="center" class="sfondo"><%=objrs("nome")%>
Il form che ho inserito di seguito e il codice lo potete cambiare o eliminare in base ale vostre esigenze. Io con questo codice avevo bisogno di estrapolare un record dal datavase cn valore true/false
</div>
<table width="100%" border="1">
<tr>
<td><%
if objrs("vis") = true then


response.Write objrs("img")

else
response.Write("1")
end if

%></td>

<td><form action="prova.asp" method="post">
<%if objrs("vis") = true then%>
on&nbsp;<input type="radio" name="ok" value="<%=objrs("vis")%>" checked="checked"/>&nbsp;off&nbsp;<input type="radio" name="ok" value="false" />
<%else%>
on&nbsp;<input type="radio" name="ok" value="true" />&nbsp;off&nbsp;<input type="radio" name="ok" value="<%=objrs("vis")%>" checked="checked" />
<%end if%>
</form></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
Qui finisce la modifica essensiale per me!!!
</td>

<%
if col MOD 2 = 0 then
%>
</tr>
<%
col = 1
else
col = col + 1
end if
iRecordsShown = iRecordsShown + 1
objRS.MoveNext
Loop
objRS.Close
Set objRS = Nothing
%>

</table>
<%End if%>
<%If ipagecount <> 1 Then%>

<table align="center">
<tr valign="middle">
<td width="50%" align="center" valign="middle"><font face="verdana" size="1" color="#FFFFFF">
<b>
<%if iPageCurrent-2 > 0 and iPageCurrent > 2 then%>
&nbsp;<a href="index3.asp?page=1&id=<%=intcodice%>"><<<</a>&nbsp;
<%end if%>
<%if iPageCurrent > 1 then%>
&nbsp;<a href="index3.asp?page=<%=iPageCurrent-1%>&id=<%=intcodice%>"><</a>&nbsp;
<%end if%>
<%if iPageCount > 2 then
if iPageCurrent-2 < 1 then da_pag = 1 else da_pag = iPageCurrent-2
if iPageCurrent+2 > iPageCount then fino_a_pag = iPageCount else fino_a_pag = iPageCurrent+2
else
da_pag = 1
fino_a_pag = iPageCount
end if%>
<%for i = da_pag to fino_a_pag%>
<%if i = iPageCurrent then%>
&nbsp;<font color="red"><%=i%></font>&nbsp;
<%else%>
&nbsp;<a href="index3.asp?page=<%=i%>&id=<%=intcodice%>"><%=i%></a>&nbsp;
<%end if%>
<%next%>
<%if iPageCurrent > 0 and iPageCurrent < iPageCount then%>
&nbsp;<a href="index3.asp?page=<%=iPageCurrent+1%>&id=<%=intcodice%>">></a>&nbsp;
<%end if%>
<%if iPageCurrent+1 < iPageCount then%>
&nbsp;<a href="index3.asp?page=<%=iPageCount%>&id=<%=intcodice%>">>>></a>&nbsp;
<%end if%>
</b>
</font></td>
</tr>
<tr>
<td colspan="2" align="center"><font face="verdana" size="1" color="#FFFFFF">
Page&nbsp;
<font color="#FFFFFF"><b><%=iPageCurrent%></b></font>
&nbsp;of&nbsp;
<font color="#FFFFFF"><b><%=iPageCount%></b></font>
</font></td>
</tr>
</table>
<%end if%>
<%
objConn.Close
Set objConn = Nothing

%>

Modificato da Jes82 il 17 luglio 2008 22.30 -
4 messaggi dal 06 dicembre 2004
 Grazie infinite per il codice!!! Erano mesi che lo cercavo! Ho scritto persino qui ma nessuno mi ha risposto! Assurdo che in giro ci siano tanti articoli sulla paginazione, anche complessa, ma come questa (quella a colonne) niente! Nessuno aveva pensato a farci una paginazione per la navigazione tra le diverse pagine che possono essere create!
Grazie ancora e sopratutto BRAVO!!!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.