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 %>