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> "
end if
for contador=1 to maxpagina
If contador>9 then
cero=""
end if
ref=ref & " <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 & " <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.