Está usted en Indice > Construcción > Lenguajes > ASP > Lecciones y Paso a Paso > Paginar un recordset en ASP
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Paginar un recordset en ASP (2)

' 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




Autor: MOS
http://www.aspfacil.com/codigo/

Usuarios que han visto este tema también han visto...

- El Objeto TextStream en ASP
- Depurar las páginas ASP
- Paginar Datos en ASP
- Acelerar el acceso a colecciones en ASP
- Cómo hacer un cliente en Web Service


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 04-12-2008 a las 06:10:43