' Defino el tamaño de las páginas
rs.PageSize=TamPagina
rs.CacheSize=TamPagina
' Abro el recordset
rs.Open SQL, oConn, 1, 2
'Cuento las páginas
PaginasTotales=rs.PageCount
'Compruebo que la pagina actual está en el rango
if PaginaActual < 1 then
PaginaActual = 1
end if
if PaginaActual > PaginasTotales then
PaginaActual = PaginasTotales
end if
Vamos a entrar ya en la paginación propiamente dicha. Primero comprobamos que la consulta nos ha devuelto datos, y luego paginamos. Llevamos en CuantosRegistros la cuenta del nº de filas que hemos sacado. Cuando llevemos TamPagina filas (10 en este caso), nos detenemos.
'Por si la consulta no devuelve registros!
if PaginasTotales=0 then
Response.Write("No se encontraron resultados.")
else
'Vamos a paginar
rs.AbsolutePage=PaginaActual
Response.Write("Pagina " & PaginaActual & " de " & PaginasTotales)
Response.Write("<br><br>")
Response.Write("<TABLE BORDER=""1"" ALIGN=""center"">")
Response.Write("<TR><TD COLSPAN=""3""><B>RESULTADOS</B></TD>")
CuantosRegistros=0
do while not rs.EOF and CuantosRegistros < TamPagina
'Pinto una línea de la tabla por cada registro
Response.Write("<TR>"&VbCrLf)
Response.Write("<TD>"&rs.Fields("Id")&"</TD>")
Response.Write("<TD>"&rs.Fields("Nombre")&"</TD>")
Response.Write("<TD>"&rs.Fields("Ventas")&"</TD>")
Response.Write("</TR>")
CuantosRegistros=CuantosRegistros+1
rs.MoveNext
loop
Response.Write("</TABLE>")
end if
rs.Close
oConn.Close
set rs=nothing
set oConn=nothing
Ya hemos terminado, nos falta poner los enlaces para avanzar o retroceder. Vamos a ello:
'Muestro los enlaces
Response.Write("<hr>")
if PaginaActual > 1 then
Response.Write("<A HREF=rspagina.asp?pagina="& PaginaActual-1& _
">10 Anteriores</A> ")
end if
if PaginaActual < PaginasTotales then
Response.Write("<A HREF=rspagina.asp?pagina=" & PaginaActual+1 & _
">10 Siguientes</A>")
end if
%>
Hay que tener cuidado aquí con no mostrar los enlaces si estamos al principio o al final, y eso es todo. Recordad que tenéis un ejemplo on-line en la sección de Código.
Un saludo,
MOS
Usuarios que han visto este tema también han visto...
- Uso del objeto diccionario de ASP
- Redirección de vuelta después de un Login en ASP
- Ejemplos básicos de ASP
- Diferencias entre Access y el SQL de ADO
- Envio de datos de un formulario a una dirección de correo
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.