les comparto esta funcion que he realizado en mi tiempo libre. permite, entregandole los datos necesarios, paginar automaticamente los resultados utilizando getrows. realize algunas pruebas con y sin esta funcion y la demora es practicamente imperceptible.
trate de hacer customizable la mayor parte del codigo para que pueden moldearla a su gusto (fuentes, tamaños, etc). es muy parecida a la usa FDW.
el codigo esta hecho a partir de la paginacion de aspfacil.com
http://www.aspfacil.com/codigo/verco...o=rspagina.asp
y que en general casi todos usamos aca.
cualquier duda o mejora es bienvenida.
para llamarlo lo usan asi
link_paginas paginaActual, paginastotales, "demo.asp", parametros, registros, "usuarios encontrados"
Código:
SUB LINK_PAGINAS(paginaactual, paginastotales, nombre_pagina, parametros, registros, titulo)
'#############################################################
' paginaactual = Corresponde a la pagina en que se encuentra posicionado actualmente
' paginastotales = Numero total de paginas devueltas
' Pagina_web = nombre de la pagina paginada ej. paginacion.asp
' Parametros = parametros que queremos agregar en los vinculos de las paginas
' registros = numero total de registros encontrados
' Titulo = Titulo para la paginacion ej. "usuarios encontrados"
' ancho_tabla = Ancho de la tabla
' ancho_celda = ancho de las celdas. recomendable 20
' numero_de_hojas = corresponde al numero de hojas que se veran en pantalla.
'recomiendo utilizar numero impares y entre 5 y 10.
' fuente_numeros = fuente de los numeros
' fuente_titulo = fuente del titulo
' size_titulo = tamaño de la fuente del titulo
' imagen_hojas = ruta para la imagen de las hojas. dejar en blanco si no se va utilizar
' fondo_celda_activa = ruta para imagen o color de la celda activa.
' ej. para color "bgcolor=""red"""
' ej. para una imagen de fondo "background=""fondo.jpg"""
' size_numero = tamaño del numero de pagina
' size_ant_sig = Tamaño del vinculo anterior y siguiente
' fuente_ant_sig = Fuente del vinculo anterior y siguiente
' caracter_anterior = caracter que representa un vinculo a la pagina anterior
' caracter_siguiente = caracter que representa un vinculo a la pagina siguiente
' caracter_primero = caracter que representa un vinculo a la primera pagina
' caracter_ultimo = caracter que representa un vinculo a la ultima pagina
'#############################################################
'seccion editable
ancho_tabla="100%"
ancho_celda=20
numero_de_hojas=7
fuente_numeros="Tahoma, Arial, Verdana"
fuente_titulo="arial"
size_titulo=1
imagen_hojas=""
fondo_celda_activa="bgcolor=""yellow"""
size_numero=1
size_ant_sig=1
fuente_ant_sig="arial"
caracter_anterior="<"
caracter_siguiente=">"
caracter_primero="<<"
caracter_ultimo=">>"%>
<style>
.Td_subrayado {//rayado cuadrado
border-top: 1px;
border-left: 1px;
border-right: 1px;
border: 1px solid;
}
</style>
<%
'############################################################
if len(parametros)>=1 then parametros=parametros+"&"
%>
<table align="center" border="0" width="<%=ancho%>" cellpadding="0" cellspacing="0" style="border-collapse: collapse">
<tr>
<td align="right"><font face="<%=fuente_titulo%>" size="<%=size_titulo%>"><%=registros%> <%=titulo%> Pág. <%=paginaactual%> de <%=paginastotales%> </font></td>
<td width="20" align="center"><%=imagen_hojas%></td><%
if paginastotales>1 then
if paginastotales>numero_de_hojas then
if paginaactual<=numero_de_hojas then
for i=1 to numero_de_hojas
if paginaactual=i then%>
<td width="<%=ancho_celda%>" align="center" <%=fondo_celda_activa%> class="td_subrayado">
<font size="<%=size_numero%>" face="<%=fuente_numeros%>"><b><%=paginaactual%></b></font></td><%
else%>
<td width="<%=ancho_celda%>" align="center" class="td_subrayado"><a href="<%=nombre_pagina%>?<%=parametros%>pagina=<%=i%>">
<font size="<%=size_numero%>" face="<%=fuente_numeros%>"><%=i%></font></a></td><%
end if
next%>
<td width="<%=ancho_celda%>" align="center" class="td_subrayado">
<a href="<%=nombre_pagina%>?<%=parametros%>pagina=<%=paginaactual+1%>" title="Pagina Siguiente (<%=paginaactual+1%>)"><font size="<%=size_ant_sig%>" face="<%=fuente_ant_sig%>"><b><%=caracter_siguiente%></b></font></a></td>
<td width="<%=ancho_celda%>" align="center" class="td_subrayado"><a href="<%=nombre_pagina%>?<%=parametros%>pagina=<%=paginastotales%>" title="Ultima Pagina (<%=paginastotales%>)"><font size="<%=size_ant_sig%>" face="<%=fuente_ant_sig%>"><b><%=caracter_ultimo%></b></font></a></td><%
else
'estamos en medio de la paginacion
if paginaactual+numero_de_hojas<=paginastotales then%>
<td width="<%=ancho_celda%>" align="center" class="td_subrayado" valign="middle"><a href="<%=nombre_pagina%>?<%=parametros%>pagina=1" title="Primera Pagina (1)"><font size="<%=size_ant_sig%>" face="<%=fuente_ant_sig%>"><b><%=caracter_primero%></b></font></a></td>
<td width="<%=ancho_celda%>" align="center" class="td_subrayado" valign="middle"><a href="<%=nombre_pagina%>?<%=parametros%>pagina=<%=paginaactual-1%>" title="Pagina Anterior (<%=paginaactual-1%>)"><font size="<%=size_ant_sig%>" face="<%=fuente_ant_sig%>"><b><%=caracter_anterior%></b></font></a></td>
<%
f=int(numero_de_hojas/2)
j=0
for i=paginaactual-(f) to paginaactual+(f)
if paginaactual=i then%>
<td width="<%=ancho_celda%>" align="center" <%=fondo_celda_activa%> class="td_subrayado" valign="middle"><font size="<%=size_numero%>" face="<%=fuente_numeros%>"><b><%=i%></b></font></td><%
else%>
<td width="<%=ancho_celda%>" align="center" class="td_subrayado" valign="middle"><a href="<%=nombre_pagina%>?<%=parametros%>pagina=<%=paginaactual-f+j%>"><font size="<%=size_numero%>" face="<%=fuente_numeros%>"><%=i%></font></a></td><%
end if
j=j+1
next%>
<td width="<%=ancho_celda%>" valign="middle" align="center" class="td_subrayado"><a href="<%=nombre_pagina%>?<%=parametros%>pagina=<%=paginaactual+1%>" title="Pagina Siguiente (<%=paginaactual+1%>)"><font size="<%=size_ant_sig%>" face="<%=fuente_ant_sig%>"><b><%=caracter_siguiente%></b></font></a></td>
<td width="<%=ancho_celda%>" valign="middle" align="center" class="td_subrayado"><a href="<%=nombre_pagina%>?<%=parametros%>pagina=<%=paginastotales%>" title="Ultima Pagina (<%=paginastotales%>)"><font size="<%=size_ant_sig%>" face="<%=fuente_ant_sig%>"><b><%=caracter_ultimo%></b></font></a></td><%
else
' parte final de la paginacion%>
<td width="<%=ancho_celda%>" align="center" class="td_subrayado"><a href="<%=nombre_pagina%>?<%=parametros%>pagina=1" title="Primera Pagina (1)"><font size="<%=size_ant_sig%>" face="<%=fuente_ant_sig%>"><b><%=caracter_primero%></b></font></a></td>
<td width="<%=ancho_celda%>" align="center" class="td_subrayado"><a href="<%=nombre_pagina%>?<%=parametros%>pagina=<%=paginaactual-1%>" title="Pagina Anterior (<%=paginaactual-1%>)"><font size="<%=size_ant_sig%>" face="<%=fuente_ant_sig%>"><b><%=caracter_anterior%></b></font></a></td><%
for i=((paginastotales+1)-numero_de_hojas) to paginastotales
if i<>0 then
if paginaactual=i then%>
<td width="<%=ancho_celda%>" align="center" <%=fondo_celda_activa%> class="td_subrayado"><font size="<%=size_numero%>" face="<%=fuente_numeros%>"><b><%=i%></b></font></td><%
else%>
<td width="<%=ancho_celda%>" align="center" class="td_subrayado"><a href="<%=nombre_pagina%>?<%=parametros%>pagina=<%=i%>"><font size="<%=size_numero%>" face="<%=fuente_numeros%>"><%=i%></font></a></td><%
end if
end if
next
end if
end if
else
' paginas totales es menor a numero_de_hojas
for i=1 to paginastotales
if paginaactual=i then%>
<td width="<%=ancho_celda%>" align="center" <%=fondo_celda_activa%> class="td_subrayado"><font size="<%=size_numero%>" face="<%=fuente_numeros%>"><%=paginaactual%></font></td><%
else%>
<td width="<%=ancho_celda%>" align="center" class="td_subrayado"><a href="<%=nombre_pagina%>?<%=parametros%>pagina=<%=i%>"><font size="<%=size_numero%>" face="<%=fuente_numeros%>"><%=i%></font></a></td><%
end if
next
end if
end if%>
</tr>
</table>
<%END SUB
%>

Este tema le ha gustado a 1 personas