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

TIPS: ¡¡¡¡ PAGINACIÓN EN ASP CON CLASES !!!! - Una pinturita

Estas en el tema de TIPS: ¡¡¡¡ PAGINACIÓN EN ASP CON CLASES !!!! - Una pinturita en el foro de ASP Clásico en Foros del Web. Esto está buenísimo Hice toda la paginación en ASP (utilizando GetRows y Bookmarks) y la implemente en una clase, por lo que no hace falta ...
  #1 (permalink)  
Antiguo 12/12/2002, 17:44
 
Fecha de Ingreso: enero-2002
Ubicación: Yerba Buena - Tucumán
Mensajes: 259
Antigüedad: 22 años, 5 meses
Puntos: 0
Exclamación TIPS ! PAGINACIÓN EN ASP CON CLASES !

Esto está buenísimo

Hice toda la paginación en ASP (utilizando GetRows y Bookmarks) y la implemente en una clase, por lo que no hace falta saber nada de nada para poder usarla, solo hay que incluir el archivo de la clase, instanciar un ojeto de la clase, asignarle los valores a las propiedades y LISTO !!!!!!!

Les muestro como sería:

<!--#include file="INCLUDES/class_paginado.asp"-->
<%
'Creamos una conexión
strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("paginar.mdb") & ";Persist Security Info=False"
set cnn = CreateObject("ADODB.Connection")
cnn.Open strconn

'Instanciamos un objeto(de nombre rs) de la Clase paginado
set rs = new paginado

'Asignamos los valores para los Atributos del objeto

rs.cnn = cnn
rs.consulta = "SELECT * FROM tabla"
rs.desde = Int(Request.Querystring("ref"))
rs.por_pagina = 5
rs.encabezado = "ID,Nombre,Apellido"
rs.ancho_encabezado = "10%,50%,40%"
rs.alineacion = "center"
rs.ancho = "60%"
rs.paginar()

If Err.Description <> "" then%>
<center>
<font class=texto_error><b>Error</b>: <%=Err.Description%></font>
</center>
<br>
<%end if

set rs = Nothing
%>

ESO es TODO !!!!!!

Pueden ver un ejemplo funcionando en www.salirxtucuman.com.ar/codigo_asp/paginar.asp

Y pueden bajar el codigo de http://www.salirxtucuman.com.ar/codi...paginacion.zip

En el código que descargen esta todo mejor explicado, y contiene la clase, la bd, un ejemplo y el archivo css con los estilos usados

Espero que les guste

Saludos

PD: ciertas veces está caído el servidor, asi que cualquier cosa ya saben de provar otro día

Última edición por g_susdaniel; 12/12/2002 a las 17:54
  #2 (permalink)  
Antiguo 12/12/2002, 18:13
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 4 meses
Puntos: 1
Muy bueno Cabezota, muy agradable a la vista esta paginacion.

Saludos.
__________________
Carlunchos
  #3 (permalink)  
Antiguo 12/12/2002, 18:38
Avatar de g_susdaniel  
Fecha de Ingreso: mayo-2001
Ubicación: Frente al Monitor :þ
Mensajes: 995
Antigüedad: 23 años, 1 mes
Puntos: 0
Exclamación

Por si esta caido ese server lo pueden bajar de aqui mismo...
Archivos Adjuntos
Tipo de Archivo: zip paginacion.zip (12,4 KB (Kilobytes), 86 visitas)
__________________
No, no no... no hay firma...
  #4 (permalink)  
Antiguo 13/12/2002, 07:24
Avatar de DARIOI  
Fecha de Ingreso: mayo-2001
Ubicación: Gotland-Visvy
Mensajes: 181
Antigüedad: 23 años, 1 mes
Puntos: 0
:-0 fenomeno ..agradecido por el aporte...
  #5 (permalink)  
Antiguo 13/12/2002, 16:58
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 5 meses
Puntos: 11
Uno mas que se suma al
Muchas Gracias.


  #6 (permalink)  
Antiguo 13/12/2002, 17:28
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
excelente cabezota..esta muy bueno...

todavia no he visto el codigo...pero vi la demo y esta la raja.

  #7 (permalink)  
Antiguo 13/12/2002, 17:43
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 4 meses
Puntos: 50
Te rifaste CABEZOTA.. well DONE ...!!
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #8 (permalink)  
Antiguo 16/12/2002, 05:41
 
Fecha de Ingreso: abril-2002
Mensajes: 17
Antigüedad: 22 años, 2 meses
Puntos: 0
Hola esta muy bien..


Pero creo que hay un problema (creo yo)

cuando pones mas campos en el mdb ya no funciona el script!

sale eso


Microsoft VBScript runtime (0x800A0009)
Subscript out of range: 'j'
  #9 (permalink)  
Antiguo 16/12/2002, 07:18
 
Fecha de Ingreso: enero-2002
Ubicación: Yerba Buena - Tucumán
Mensajes: 259
Antigüedad: 22 años, 5 meses
Puntos: 0
Exclamación Respuesta

Hola, antes que nada agradezco a todos por sus comentarios, me alegra mucho que se aprecie el trabajo y el esfuerzo.

Con respecto a el problema que me dicen que tiene, no creo que sea exactamente el agregar campos a la base de datos, porque yo utilizo la Clase con varios campos mas que el ejemplo que les pasé y no tuve ningún problema. Posiblemente el problema sea que si agregaste mas campos a la base de datos (y obviamente a la consulta) debes hacer lo mismo con los atributos:

objeto.encabezado = "campo1,campo2,...,campo_x"
objeto.ancho_encabezado = "ancho1,ancho2,...,ancho_x"

Es decir que la cantidad de campos que selecciones en la consulta debe coincidir con la cantidad de elementos que pongas en la propiedad encabezado y ancho_encabezado. Esos controles deberían estar hechos en la Clase y detectar el error en caso de que no sea así, pero bue... eso lo podrán hacer ustedes mismos ... o no ?

De todas formas si el problema persiste no duden en consultarme mandandome el código que les está generando el error. Mi mail es [email protected].

Como se habrán dado cuenta esta Clase para realizar el paginado es bastante rígida y poco flexible ya que una vez asignadas las propiedades del objeto y ejecutando el método paginar() ya se genera solo el HTML mostrando solo los campos seleccionados en la consulta. En caso de que uno necesite incluir una 1º columna en la tabla HTML con un input tipo checkbox no puede hacerlo en la forma en la que está hecha esta clase. Para eso debería modificarse la clase haciendo que permita esto o simplemente que devuelva el recordset para que uno muestre los campos paginados como uno quiera.

Bueno .... ya escribí demasiado así que me voy despidiendo ...

Saludos

CABEZOTA
  #10 (permalink)  
Antiguo 16/12/2002, 08:53
 
Fecha de Ingreso: mayo-2001
Ubicación: SMP-LIMA
Mensajes: 120
Antigüedad: 23 años, 1 mes
Puntos: 0
poner enlace

es posible modificar para ponerle un enlace en el primer campo?
__________________
Alberto
  #11 (permalink)  
Antiguo 16/12/2002, 15:38
 
Fecha de Ingreso: enero-2002
Ubicación: Yerba Buena - Tucumán
Mensajes: 259
Antigüedad: 22 años, 5 meses
Puntos: 0
Poner enlace ...

Eso es lo que estaba explicando anteriormente ... de la forma en que está hecha la clase no es posible hacer nada más que mostrar los datos tal cual están en la base de datos.
Para hacer lo que vos queres (si es que el hipervínculo que querés en el 1º campo esta en cada registro de la base de datos) deberías modificar la clase haciendo que cuando liste la 1º columna (j=1) ponga el enlace en lugar de solamente los datos de la bd.

Espero que me hayas entendido.

Saludos :cantar:
  #12 (permalink)  
Antiguo 16/12/2002, 21:53
 
Fecha de Ingreso: febrero-2002
Ubicación: Santiago
Mensajes: 42
Antigüedad: 22 años, 4 meses
Puntos: 0
De acuerdo

si yo tambien me sumo, gracias CABEZOTA
  #13 (permalink)  
Antiguo 17/12/2002, 10:20
Avatar de lubetpic  
Fecha de Ingreso: enero-2002
Ubicación: San Jose
Mensajes: 679
Antigüedad: 22 años, 4 meses
Puntos: 0
muy bueno...y sobre todo con pocas lineas de comandos

por cierto ya lo puse en los faqs

Última edición por lubetpic; 17/12/2002 a las 10:24
  #14 (permalink)  
Antiguo 17/12/2002, 11:54
 
Fecha de Ingreso: mayo-2001
Ubicación: SMP-LIMA
Mensajes: 120
Antigüedad: 23 años, 1 mes
Puntos: 0
Gracias

Gracias Cabezota, ya lo aplique en mi pagina y funciona muy bien, sobre el enlace voy a ver si me sale ..te refieres a modificar esta parte?
For j=0 to Ubound(table,1)
Response.Write("<td width=" & ancho_enc(j) & " class=item_table>" & table(j,i) & "</td>")
Next
Nuevamente gracias por esta aportación tan generosa de tu parte.
__________________
Alberto
  #15 (permalink)  
Antiguo 17/12/2002, 14:34
 
Fecha de Ingreso: junio-2002
Ubicación: Monterrey, Nuevo Leon
Mensajes: 29
Antigüedad: 22 años
Puntos: 0
Felicidades y gracias Cabezota, miren, para los que les interese, yo ya hice lo de poner un link en un campo de la tabla y aqui esta la parte de codigo que modifique, es en la clase (archivo class_paginado.asp) y estas son las lineas:

For j=0 to Ubound(table,1)
If j=0 then
Response.Write("<td width=" & ancho_enc(j) & " class=item_table><a href='prueba.htm'>" & table(j,i) & "</a></td>")
Else
Response.Write("<td width=" & ancho_enc(j) & " class=item_table>" & table(j,i) & "</td>")
End If
Next

la original es asi:

For j=0 to Ubound(table,1)
Response.Write("<td width=" & ancho_enc(j) & " class=item_table>" & table(j,i) & "</td>")
Next

si quieren que el campo que contenga el link sea otro y no el primero tienen que cambiar el If j=0 por el numero del campo correspontiente, por ejemplo siguiendo el ejemplo, si quieres que sea el nombre el del enlace seria If j= 1 then...

Bueno
__________________
Saludos desde Monterrey, Mexico
Ignacio Velazquez
  #16 (permalink)  
Antiguo 20/12/2002, 10:11
 
Fecha de Ingreso: enero-2002
Ubicación: Yerba Buena - Tucumán
Mensajes: 259
Antigüedad: 22 años, 5 meses
Puntos: 0
Gracias por su Opinión

Hola a todo el mundo !!!

Les agradezco muchísimo sus buenos comentarios y opiniones acerca del aporte al Foro. Levantan el ánimo de cualquiera ...

Así que cuando pueda estaté haciendo algún otro aporte a todos los foreros .

Saludos :cantar:

CABEZOTA
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




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