Foros del Web » Programando para Internet » ASP Clásico »

Regalo de navidad: Paginador automatico

Estas en el tema de Regalo de navidad: Paginador automatico en el foro de ASP Clásico en Foros del Web. he visto que muchos tiene problemas al paginar los resultados de una consulta. les comparto esta funcion que he realizado en mi tiempo libre. permite, ...
  #1 (permalink)  
Antiguo 22/12/2005, 13:54
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 23 años, 2 meses
Puntos: 2
Regalo de navidad: Paginador automatico

he visto que muchos tiene problemas al paginar los resultados de una consulta.

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%>&nbsp;<%=titulo%>&nbsp;Pág.&nbsp;<%=paginaactual%>&nbsp;de&nbsp;<%=paginastotales%>&nbsp;&nbsp;</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
%>
__________________
Manual de ASP Avanzado ;-)
  #2 (permalink)  
Antiguo 23/12/2005, 06:02
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 21 años, 5 meses
Puntos: 0
muchas gracias, "aprendiz" me ha solucionado el problema.
FELIZ NAVIDAD Y FELIZ 2006
  #3 (permalink)  
Antiguo 23/12/2005, 09:56
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 21 años
Puntos: 4
Bueno y cual era el error ????
  #4 (permalink)  
Antiguo 23/12/2005, 10:11
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 23 años, 2 meses
Puntos: 2
http://www.forosdelweb.com/f15/problema-con-rs-absolutepage-rs-pagecount-359115/
__________________
Manual de ASP Avanzado ;-)
  #5 (permalink)  
Antiguo 23/10/2008, 11:51
 
Fecha de Ingreso: febrero-2008
Ubicación: Buenos Aires
Mensajes: 58
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Regalo de navidad: Paginador automatico

muchas gracias por el codigo!! muy bueno! me re sirvió!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:39.