Foros del Web » Programando para Internet » ASP Clásico »

Problema en una paginación

Estas en el tema de Problema en una paginación en el foro de ASP Clásico en Foros del Web. Hola a todos, tengo en una asp una tabla que lista los registros que le vuelca una consulta a una SQL Server. Lo que tengo ...
  #1 (permalink)  
Antiguo 23/04/2007, 17:12
 
Fecha de Ingreso: julio-2005
Mensajes: 70
Antigüedad: 19 años, 9 meses
Puntos: 0
Problema en una paginación

Hola a todos,

tengo en una asp una tabla que lista los registros que le vuelca una consulta a una SQL Server. Lo que tengo es esto:

<%
Do While Not RS.Eof
%>

<tr class=omitido para ahorrar espacio>
<td class=omitido para ahorrar espacio>
<%=RS("Num")%></td>
<td class=omitido para ahorrar espacio>
<%=RS("Total")%></td>

</tr>

<%
RS.MoveNext
Loop
oConn.Close
%>

Con esto ocnsigo que me muestra la tabla con los dos campos y todos los registros que contiene.

Lo que quiero es paginarlo para que se muestre de 10 en 10, y aquí vienen los problemas.

Uilizo el siguiente código que he encontrado en algunas páginas de ASP:

<%
cantidadregistros=10
%>

<%
if request.querystring("paginaactual")<>"" then
mostrarpagina=request.querystring("paginaactual")
else
mostrarpagina=1
end if
%>

<%

set rs=Server.CreateObject("ADODB.Recordset")
rs.cachesize=60
rs.open SQL, oConn, 3, 3

%>

<%
rs.pagesize=cantidadregistros
maxpagina=cint(rs.pagecount)
maxregistros=cint(rs.pagesize)
rs.absolutepage=mostrarpagina
contreg=0
%>

<%
if int(mostrarpagina)<>int(maxpagina) then
hasta=mostrarpagina*10
desde=hasta-9
else
hasta=rs.recordcount
desde=(maxpagina*10)-9
end if
%>

<%
do while not rs.eof and contreg < maxregistros
rs.movenext
contreg=contreg+1
loop
%>

<tr class=omitido para ahorrar espacio>
<td class=omitido para ahorrar espacio>
<%=RS("Num")%></td>
<td class=omitido para ahorrar espacio>
<%=RS("Total")%></td>

<table border="0" width="95%" id="table24" cellspacing="0">
<tr>
<td align="left">
<%
response.write "Resultados : "
response.write desde & " a " & hasta & " de " & rs.recordcount & " encontrados."
%>

<br>
<%

cero="0"
nombrescript=request.servervariables("script_name" )
if int(mostrarpagina)<>1 then
ref="<a href='" & nombrescript & "?buscar=" &_
Server.Urlencode(request.querystring("buscar"))
ref=ref & "&paginaactual=" & mostrarpagina-1
ref=ref & "'>[<< Anterior]</a>&nbsp;"
end if

for contador=1 to maxpagina

If contador>9 then
cero=""
end if

ref=ref & "&nbsp;<a href='" & nombrescript
ref=ref & "?buscar=" & Server.Urlencode(request.querystring("buscar"))
ref=ref & "&paginaactual=" & contador

if int(contador)=int(mostrarpagina) then
ref=ref & "'><strong>" & cero & contador & "</strong></a>"
else
ref=ref & "'>" & cero & contador & "</a>"
end if

next

if int(mostrarpagina)<>int(maxpagina) then
ref=ref & "&nbsp;<a href='" & nombrescript & "?buscar="
ref=ref & Server.Urlencode(request.querystring("buscar"))
ref=ref & "&paginaactual=" & mostrarpagina+1
ref=ref & "'>[Siguiente >>]</a>"

end if

response.write ref
%>

-----

pero con esto lo que consigo es que los registros se me muestren sólo de 1 en 1. Supongo que debo haber metido la pata en la parte del "do while", porque por ejemplo al final me indica correctamente el número de registros que hay y efectivamente me da la posibilidad de navegar por 4 páginas que coinciden con los 34 registros que debería mostrar.

A ver si me podéis ayudar.

Gracias.
  #2 (permalink)  
Antiguo 24/04/2007, 07:10
 
Fecha de Ingreso: julio-2005
Mensajes: 70
Antigüedad: 19 años, 9 meses
Puntos: 0
Re: Problema en una paginación

¿Alguien me puede ayudar por favor?

Gracias.
  #3 (permalink)  
Antiguo 24/04/2007, 09:12
 
Fecha de Ingreso: julio-2005
Mensajes: 70
Antigüedad: 19 años, 9 meses
Puntos: 0
Re: Problema en una paginación

Bueno ya está solucionado, efectivamente el problema estaba en el while.

Un saludo.
  #4 (permalink)  
Antiguo 21/09/2007, 02:10
yz!
Invitado
 
Mensajes: n/a
Puntos:
Re: Problema en una paginación

¿Y cómo lo solucionaste?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:27.