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

Ayuda con paginación

Estas en el tema de Ayuda con paginación en el foro de ASP Clásico en Foros del Web. Hola gente! Les envio este post porque necesito ayuda, tengo el siguiente codigo que me devuelve lo que tiene la tabla en varios links pero ...
  #1 (permalink)  
Antiguo 06/11/2008, 20:57
 
Fecha de Ingreso: noviembre-2003
Ubicación: Pvcia. de Bs. A.s
Mensajes: 20
Antigüedad: 21 años, 5 meses
Puntos: 0
Pregunta Ayuda con paginación

Hola gente! Les envio este post porque necesito ayuda, tengo el siguiente codigo que me devuelve lo que tiene la tabla en varios links pero mal, paso a explicar:
Por ejemplo supongamos que me devuelve fotos si tengo 4 fotos de resultado en total y pongo que me devuelva 2 por pagina la primer pagina me muestra 2 la segunda me muestra 4 y tengo una tercera que me muestra otras 2, ni idea porque esta haciendome esto les dejo el codigo a ver si me pueden ayudar con este o con algun otro ejemplo.

Una aclaracion esto me lo hace si pongo el nombre de la tabla a mano pero si me traigo del buscador por una lista combo el nombre de la tabla y le hago un request, ( Request("tabla") ),en el from me muestra la primera pagina y en las demas me da error en la clausula FROM.
-----------------

<%@ Language="VBScript" %>
<html>
<head>
<title>Buscar datos</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<!-- Esta linea nos dira los resultados obtenidos con la palabra clave <body bgcolor="#FFFFCC">-->
<p><font face="Tahoma" size="2">Resultados obtenidos con <strong><%=Request("Palabra") %></strong></font></p>
<table width="44%" border="1" align="center">
<tr>
<td width="51%" height="20" bgcolor="#6C0036"><strong><font color="#F7F7F7" size="2" face="Tahoma">RESULTADOS DE LA BUSQUEDA</font></strong></td>
</tr>
</table>
<div align="center">
<%
'actualizamos numero de pagina
If Request.QueryString("pag")<>"" then
Session("pagina")=Request.QueryString("pag")
Else
Session("pagina")=3
End If

'constantes ADO VBScript
Const adCmdText = &H0001
Const adOpenStatic = 3
'realizamos la conexión de la Base de Datos
Dim Conexion,Tabla1
Set Conexion=Server.CreateObject("adodb.connection")
Set Tabla1=Server.CreateObject("adodb.recordset")
Conexion.Open("Provider=Microsoft.Jet.OLEDB.4.0;Da ta Source=" & Server.MapPath("base1.mdb"))
'definimos las variables de busqueda
Dim Temp,Rango
variable=Request("tabla")
Temp= "SELECT * FROM tabla_cv Where UCase(desc_corta) like '%" & UCase(Request("palabra")) & "%' "
Tabla1.Open Temp, Conexion,adopenstatic,adcmdtext
'resultados por pagina a elegir arbitrariamente
num_registros = 2

'Dimensionamos las paginas y determinamos la pagina actual
Tabla1.PageSize=num_registros
Tabla1.AbsolutePage=Session("pagina")

If Tabla1.BOF And Tabla1.EOF Then
%>

<!-- si no encuentra nada nos da este mensaje -->
<!--<p><font face="Tahoma" size="2">No se ha encontrado nada con <strong><%=Request("Palabra")%></strong> en la Base de Datos</font></p> -->

<!-- aquí comienza el Script que nos muestra los resultados, si los encuentra, en una tabla -->
<%
Else
%>

<% 'Paginacion
i=0
While i<Tabla1.PageCount
i=i+1
%>
<b><a href="buscar.asp?&pag=<%=i%>"><%=i%></a></b>
<%
Wend
%>
</div>
<div align="center">
<center>
<table width="44%" border="1">
<tr>
<td width="51%" valign="top"><table border="0" cellpadding="0" cellspacing="0" width="99%" height="150" bordercolor="#C0C0C0">

<% While Not Tabla1.EOF%>
<tr>
<td width="28%" height="131" valign="top" bgcolor="#FFFFFF"><div align="left"><img src="images/<%=Tabla1.Fields("NombreFichero1")%>" height=100 width=120 border=0 alt="Imagen 1" align=top><br>
<font color="#FFFFFF"><strong>.</strong></font><br>
</div>
<td width="66%" height="131" valign="top" bgcolor="#FFFFFF"><form method="post" action="detalle.asp">
<div align="left">
<p><font face="Tahoma" size="2"><%=Tabla1.Fields("Id")%></font>
<input name="ID" type="Hidden" value="<%=Tabla1.Fields("Id")%>">
Tabla:<%=Tabla1.Fields("Tabla")%>
<input type="hidden" name="tabla" value="<%=Tabla1.Fields("Tabla")%>">
<br>
<font face="Tahoma" size="2"><%=Tabla1.Fields("id_proveedor")%></font>
<input name="Desc_corta" type="Hidden" id="Desc_corta" value="<%=Tabla1.Fields("id_proveedor")%>">
<br>
<font face="Tahoma" size="2"><%=Tabla1.Fields("Desc_larga")%></font>

<br>
<%= Tabla1.Fields("Desc_corta")%>
<input name="Desc_corta" type="Hidden" value="<%=Tabla1.Fields("Desc_corta")%>">
</p>
<p>
<input type="submit" value="+Detalles" name="submit">
</p>
</div>
</form>

</tr>
<tr>
<td height="19" colspan="3" valign="top" bgcolor="#FFFFFF"><div align="right">
<hr size="1" color="#E1E1E1">
</div> </tr>


<%

'si encuentra mas de un resultado nos hace una celda mas en la tabla
Tabla1.MoveNext
Wend
''Tabla1.Close
''Conexion.Close
End If
%>

<hr size="1" color="#E1E1E1">
</table></td>
</td><%Response.Write variable%>
</tr>
</table>
<%
i=0
While i<Tabla1.PageCount
i=i+1
%>
<b><a href="buscar.asp?pag=<%=i%>"><%=i%></a></b>
<%
Wend
%>
<%

Tabla1.Close
Conexion.Close
%>
</div>
</body>
</html>
----------------------------------------------------------------------------------

Saludos y gracias de antemano.
  #2 (permalink)  
Antiguo 07/11/2008, 07:19
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 4 meses
Puntos: 126
Respuesta: Ayuda con paginación

Hola

Prueba con esto

Código asp:
Ver original
  1. mostrar = 26
  2.  
  3. rs.PageSize = mostrar
  4. rs.CacheSize = mostrar
  5.  
  6. cant_paginas = rs.PageCount
  7. cant_registros = rs.RecordCount
  8.  
  9. 'La consulta
  10.  
  11. ' Si el pedido de página cae afuera del rango, lo modificamos para que caiga adentro
  12. If pagina_actual > cant_paginas Then pagina_actual = cant_paginas
  13. If pagina_actual < 1 Then pagina_actual = 1
  14.  
  15. BarraDePaginacion(cant_paginas, pagina_actual)%>
  16.  
  17. rs.AbsolutePage = pagina_actual
  18.  
  19. Dim registros
  20. registros=rs.getrows()
  21.  
  22. For i=0 to UBound(registros,2)
  23. registros_mostrados = 0
  24. If registros_mostrados > (mostrar-1) then
  25. Exit For
  26. Else
  27.  
  28. ' Imprimo la lista
  29.  
  30. End If
  31. registros_mostrados = registros_mostrados + 1
  32. Next ' i

Función

Código asp:
Ver original
  1. Function BarraDePaginacion(PaginasTotales, PaginaActual)
  2.     'Modificar el contenido de las constantes para cambiar el aspecto de la barra de navegación
  3.     const EstiloDeLaTabla = "border: 1px solid #A4A4A4; font-family: Arial, Helvetica, sans-serif; font-size: 10px;"
  4.     const EstiloCeldaPaginaXdeY = "background-color: #000000; color: #FFFFFF;"
  5.     const LinkDelEnlace = "resultado"
  6.     const LinkDelEnlace2 = "resultado_flecha"
  7.     const LinkDelEnlace3 = "resultado_textoflecha"
  8.     const EstiloDeLaCeldaPaginaActual = "background-color:#FFFFFF; color:#000000; font-weight:bold;"
  9.  
  10.  
  11.     if PaginasTotales > 1 then
  12.         if PaginasTotales > 7 then MostrarUltima = true    
  13.         TablaConBarraDeNavegacion = "</td><td><div class=""alineacion"" align=""right""><table border=""0"" cellpadding=""2"" cellspacing=""1"" style=""" & EstiloDeLaTabla & """><tr><td style=""" & EstiloCeldaPaginaXdeY & """>&nbsp; P&aacute;gina " & PaginaActual & " de " & PaginasTotales & "&nbsp;&nbsp;</td>"
  14.         if PaginaActual >= 6 then
  15.             TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td class=""" & LinkDelEnlace3 & """><a href="""& PaginaActualBarraDeNavegacion & "?f="&f&"&amp;pagina=1""><strong>« </strong>Primero</a></td><td class=""" & LinkDelEnlace2 & """><a href="""& PaginaActualBarraDeNavegacion & "?f="&f&"&amp;pagina="&pagina_actual -1&""" ><strong>«</strong></a></td>"
  16.  
  17.             CantidadAMostrarDeAnterioresYPosteriores = 3
  18.             'Indicamos la celda central como activa, y sin link
  19.             '(la 3ª, de las 7 mostradas), y el resto con link
  20.             for i = 1 to 7
  21.                 'No mostramos link si estamos en la 3ª celda de las 7 mostradas
  22.                 if i = 4 then
  23.                     TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style=""" & EstiloDeLaCeldaPaginaActual & """>" & PaginaActual & "</td>"
  24.                 else
  25.                 'Mostramos el link si estamos en las celdas distintas de la 3ª (la central)
  26.                     TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" class=""" & LinkDelEnlace & """><a href="""& PaginaActualBarraDeNavegacion & "?f="&f&"&amp;pagina=" & PaginaActual - CantidadAMostrarDeAnterioresYPosteriores &""">" & PaginaActual - CantidadAMostrarDeAnterioresYPosteriores & "</a></td>"
  27.                 end if
  28.  
  29.                 if PaginaActual - CantidadAMostrarDeAnterioresYPosteriores = PaginasTotales then
  30.                     MostrarUltima = False
  31.                     Exit For
  32.                 end if
  33.  
  34.                 CantidadAMostrarDeAnterioresYPosteriores = CantidadAMostrarDeAnterioresYPosteriores - 1
  35.             next
  36.         else
  37.             if PaginasTotales < 7 then
  38.                 for i = 1 to PaginasTotales
  39.                     if i <> PaginaActual then
  40.                         TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center""  class=""" & LinkDelEnlace & """><a href="""& PaginaActualBarraDeNavegacion & "?f="&f&"&amp;pagina=" & i & """>" & i & "</a></td>"
  41.                     else
  42.                         TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaActual &""">" & i & "</td>"
  43.                     end if
  44.                 next
  45.             else
  46.                 For i = 1 to 7
  47.                     if i <> PaginaActual then
  48.                         TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" class=""" & LinkDelEnlace & """><a href="""& PaginaActualBarraDeNavegacion & "?f="&f&"&amp;pagina=" & i & """>" & i & "</a></td>"
  49.                     else
  50.                         TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaActual &""">" & i & "</td>"
  51.                     end if
  52.                 next
  53.             end if
  54.         end if
  55.  
  56.  
  57.         if MostrarUltima = true then TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td class=""" & LinkDelEnlace2 & """><a href="""& PaginaActualBarraDeNavegacion & "?f="&f&"&amp;pagina=" & pagina_actual +1& """><strong>»</strong></a></td><td class=""" & LinkDelEnlace3 & """><a href="""& PaginaActualBarraDeNavegacion & "?f="&f&"&amp;pagina=" & PaginasTotales & """>&Uacute;ltimo <strong>»</strong></a></td>"
  58.         TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "</tr></table></div>"
  59.         BarraDePaginacionTemas = TablaConBarraDeNavegacion
  60.     end if
  61. End Function

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 07/11/2008, 11:58
 
Fecha de Ingreso: febrero-2008
Ubicación: Buenos Aires
Mensajes: 58
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Ayuda con paginación

Una consulta, cual es la idea de la funcion? no entiendo bien para que nos serviria esa "Tabla con barra de navegacion"...

Gracias!
  #4 (permalink)  
Antiguo 07/11/2008, 12:44
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 4 meses
Puntos: 126
Respuesta: Ayuda con paginación

Hola

Para ser gráfico y responder a tu pregunta al mismo tiempo, solo decirte que esa función hace casi que lo mismo que la paginación de este foro. En cuanto a Tablaconbarradenavegacion es una variable que se usa para concatenar todo el codigo

Prueba esto

Código asp:
Ver original
  1. Dim valor
  2. valor = "hola"
  3. valor = valor & "mundo"
  4. response.write valor

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 07/11/2008, 13:29
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Respuesta: Ayuda con paginación

toc toc

tu error esta aquí básicamente

Temp= "SELECT * FROM tabla_cv Where UCase(desc_corta) like '%" & UCase(Request("palabra")) & "%' "

ummm revisando tu codigo a la rapida falta esto

<a href="buscar.asp?pag=<%=i%>&palabra=<%=palabra%>"><%=i%><

ademas si no lleva numero de pagina lo mandas a la 3

Session("pagina")=3


eso tienes que poner en todos tus enlaces

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #6 (permalink)  
Antiguo 17/11/2008, 12:28
 
Fecha de Ingreso: febrero-2008
Ubicación: Buenos Aires
Mensajes: 58
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Ayuda con paginación

Cita:
Iniciado por Adler Ver Mensaje
Hola

Para ser gráfico y responder a tu pregunta al mismo tiempo, solo decirte que esa función hace casi que lo mismo que la paginación de este foro. En cuanto a Tablaconbarradenavegacion es una variable que se usa para concatenar todo el codigo

Prueba esto

Código asp:
Ver original
  1. Dim valor
  2. valor = "hola"
  3. valor = valor & "mundo"
  4. response.write valor

Suerte

Se agrece la explicacion!!!

:D
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 09:47.