Paginacion de resultados Basica


http://www.asptutor.com

Paginación de registros

Este ejemplo nos permite paginar en bloques de registros el resultado de una select contra una tabla de nuestra base de datos.

 

Vas a necesitar el archivo de variables Adovbs.inc descárgalo AQUI

Paginando.asp
<!-- #include file="adovbs.inc" -->
<html>

<!-- recibimos del formulario la dirección del movimiento y
lo guardamos en una variable de sesión para este usuario -->

<%xx=request.form("direccion")
if xx = "Atras" then 
session("pagina")=session("pagina")-1

if session("pagina")< 1 then 
session("pagina")=1 'evitamos el error por reload
end if

else 
if xx="Adelante" then 
session("pagina")=session("pagina")+1
else
session("pagina")=1 'primera pasada
end if 
end if
%> 

<head>
<title>Paginación de registros</title>
</head>

<!-- Montamos la sentencia SQL con los campos a seleccionar -->

<%SQLtxt = "SELECT Producto, Cantidad, Precio FROM almacen"%>

<body>

<!-- Creamos el objeto recordset y le asignamos un tipo de cursor
que nos permita movernos por el y asignarle tamaños de pagina -->

<%set rs = CreateObject("ADODB.Recordset")
rs.CursorType = adOpenstatic
%>

<!-- abrimos el recordset con la sentencia SQL sobre nuestra base
ODBC y le asignamos el tamaño de página -->

<%rs.Open SQLtxt, "DSN=Mibase"
rs.pagesize=10

if session("pagina")>rs.pagecount then
session("pagina")=rs.pagecount 'evitamos el error de reload
end if
%> 

<!-- situamos el cursor en el inicio de la pagina a mostrar y 
calculamos los valores de inicio y fin para mostrarlos en
las cabeceras -->

<%rs.absolutepage=session("pagina")
inicio=1+(session("pagina")-1)*rs.pagesize
fin=inicio+9
if fin > rs.recordcount then
fin =rs.recordcount
end if

%>
<center><h3>Paginación de registros</h3></center>
<table border="0" width="100%" bgcolor="#C0C0C0">
<tr>
<td width="50%" align="center">Registros <font color="#FF0000"><%=inicio%> </font>
al <font color="#FF0000"><%=fin%></font> de un total de
<font color="#FF0000"><%=rs.recordcount%></font></td>
<td width="50%" align="center">Página <font color="#FF0000"><%=session("pagina")%>
</font> de <font color="#FF0000"><%=rs.pagecount%></font></td>
</tr>
</table>
<br>
<table BORDER="1" CELLSPACING="0" BORDERCOLOR="#000000" CELLPADDING="2" width="100%">
<tr>
<td BGCOLOR="#C0C0C0"><b>Nombre de producto</b></td>
<td BGCOLOR="#C0C0C0"><b>Cantidad por unidad</b></td>
<td BGCOLOR="#C0C0C0" align="right"><b>Precio por unidad</b></td>
</tr>


<!-- montamos el bucle para mostrar los registros -->

<%
contador=0
Do While contador < rs.pagesize and NOT rs.EOF
%>


<tr>
<td><%= rs("Producto")%></td>
<td><%= rs("Cantidad")%></td>
<td align="right"><%= FormatCurrency(rs("Precio"))%></td>
</tr>

<% rs.MoveNext
contador=contador+1
Loop

%>
</table>
<div align="center">
<center>

<!-- mostramos los botones de adelante y atras segun proceda -->

<table border="0" width="38%" height="5">
<tr><%if session("pagina")<> 1 then %>
<td width="50%" height="1" align="center">
<form method="POST" action="paginando.asp">
<p><input type="submit" value="Atras" name="direccion"></p>
</form>
</td><%end if%>
<%if session("pagina")< rs.pagecount then%>
<td width="50%" height="1" align="center">
<form method="POST" name="paginando.asp">
<p><input type="submit" value="Adelante" name="direccion"></p>
</form>
</td><%end if%>
</tr>
</table>
</center>
</div>

<!-- cerramos el recordset -->

<%rs.Close%>

</body></html>
Pulsa para ver el ejemplo funcionando
    
Atras

Siguiente