Paginación profesional de resultados
IMPORTANTE: antes de liarte con este ejemplo es necesario que hallas
practicado y entendido el ejemplo de paginación sencilla y
que estés familiarizado con los distintos métodos request .
Vas a necesitar el archivo de variables
Adovbs.inc descárgalo AQUI
En este ejemplo se muestra como conseguir una paginación de resultados
de una consulta con un aspecto y funcionalidad igual a la usada en los buscadores tipo
Yahoo , Terra, etc.
Para ello utlizaremos un formulario que nos ofrecera las opciones de páginación.
Los datos los enviaremos mediante el metodo GET , que nos los
enviara como una cadena de consulta.
La página asp recibira las opciones mediante request.querystring y
se llamara a si misma con esas mismas opciones mediante un link con cadena de consulta que
nosotros elaboraremos en el pie de página.
Formulario de captura de opciones:
PPROF.HTM
| <html> < head>
< title>Consultas</title>
< /head>
< body bgcolor="#800000">
< p align="center"><font color="#FFFFFF">
<big><big><big>Paginación Profesional de resultados</big></big></big></font></p>
< p align="center"><font color="#FFFFFF"><big>Listado de
libros</big></font></p>
< form method="GET" action="pprof.asp">
< table border="1" width="100%" height="203">
< tr>
< td width="100%" align="center" height="23"><font color="#FFFFFF">
<b><i>Selecciona
el campo de ordenacion</i></b></font></td>
< /tr>
< tr>
< td width="100%" bgcolor="#FFFFCC" height="30"><table border="0" width="100%"
bgcolor=" #FFCC99">
< tr>
< td width="50%" align="center">
<input type="radio" value="autor" name="orden" checked>Autor</td>
< td width="50%" align="center">
<input type="radio" value="titulo" name="orden">Titulo</td>
< /tr>
< /table>
< /td>
< /tr>
< tr>
< td width="100%" height="23"><div align="center"><center><p><i><font color="#FFFFFF">
<b>Selecciona la cantidad de registros por
página</b></font></i></td>
< /tr>
< tr>
< td width="100%" height="103"><table border="0" width="100%" bgcolor="#FFFFCC">
< tr>
< td width="20%" align="center" bgcolor="#FFCC99"><input type="radio" value="25"
name=" tamanopagina"> 25</td>
< td width="20%" align="center" bgcolor="#FFCC99"><input type="radio" name="tamanopagina"
value=" 35" checked> 35</td>
< td width="20%" align="center" bgcolor="#FFCC99"><input type="radio" name="tamanopagina"
value=" 50"> 50</td>
< td width="20%" align="center" bgcolor="#FFCC99"><input type="radio" name="tamanopagina"
value=" 75"> 75</td>
< td width="20%" align="center" bgcolor="#FFCC99"><input type="radio" name="tamanopagina"
value=" all"> todos</td>
< /tr>
< /table>
< div align="center"><center><p><input type="submit" value="Enviar" name="B1"></td>
< /tr>
< /table>
< font color="#FFFFFF"><div align="center"><center><p> </p>
< /center></div>
< /form>
< /font>
< /body>
< /html> |
Conseguimos un formulario como este:
Pagina de Listado
PPROF.ASP
| <!-- #include file="adovbs.inc" --> < html>
< head>
< title>Consultas</title>
< /head>
< body bgcolor="#800000">
< p align="center"><font color="#FFFFFF"><big><big><big>Paginacion
Profesional</big></big></big></font></p>
< p align="center"><font color="#FFFFFF"><big>Listado de
libros</big></font></p>
< font color="#FFFFFF"><%
Server.ScriptTimeOut=180
tamanopagina=request.querystring("tamanopagina")
if tamanopagina = "" then
tamanopagina=25
end if
paginaabsoluta=request.querystring("paginaabsoluta")
if paginaabsoluta="" then
paginaabsoluta=1
end if
orden=request.querystring("orden")
if orden = "" then
orden="codigo"
end if
set rs = CreateObject("ADODB.Recordset")
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
sqltxt="SELECT * FROM biblioteca order by "&orden
rs.Open sqltxt, "DSN=biblioteca"
if tamanopagina <> "all" then
rs.pagesize= cint(tamanopagina)
rs.absolutepage=cint(paginaabsoluta)
contador=1 %>
< table align="center">
< % do
while not rs.eof and contador <= cint(tamanopagina) %>
< tr>
< td width="21%" bgcolor="#C59530"><%=rs("autor")%>
< /td>
< td width="21%" bgcolor="#C59530"><%=rs("titulo")%>
< /td>
< /tr>
< %rs.movenext
contador=contador+1
loop %>
< /table>
< p align="center">Pulsa en la página a la que deseas ir </p>
< table align="center" bgcolor="#ffffff">
< tr>
< %j=0
if cint(paginaabsoluta) <> 1 then
atras=cint(paginaabsoluta)-1
response.write "<td align=center><a
href=pprof.asp?orden="&orden&"&tamanopagina="&tamanopagina&"&paginaabsoluta="
& atras &
">"&"<<"&"</a></td>"
j=j+1
end if
for i = 1 to rs.pagecount
j=j+1
if j>20 then
response.write "</tr><tr>"
j=1
end if
if cint(i) = cint(paginaabsoluta) then
response.write "<td bgcolor=#00ff00
align=center>"&i&"</td>"
else
response.write "<td align=center><a
href=pprof.asp?orden="&orden&"&tamanopagina="&tamanopagina&"&paginaabsoluta="
& i & ">"&i&"</a></td>"
end if
next
end if %>
< %if
cint(paginaabsoluta) <> rs.pagecount then
atras=cint(paginaabsoluta)+1
response.write "<td align=center><a
href=pprof.asp?orden="&orden&"&tamanopagina="&tamanopagina&"&paginaabsoluta="
& atras &
">"&">>"&"</a></td>"
end if %>
< /tr>
< /table>
< p align="center"> </font></p>
< /body>
< /html> |
Con lo que obtendreis este resultado:

Puedes ver el ejemplo funcionando en real pulsando en el dibujo

52 usuarios han valorado este
articulo.
Valoracion media:
|