Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   ASP Clásico (http://www.forosdelweb.com/f15/)
-   -   Problema con Paginacion de Resultados (http://www.forosdelweb.com/f15/problema-con-paginacion-resultados-574412/)

darkmcloud 10/04/2008 00:00

Problema con Paginacion de Resultados
 
Buenas amigos de foros del web.....soy yo nuevamente....resulta que necesito un paginador de resultados como el de este foro....yo encontre en la Biblioteca de Clases, Funciones y Subrutinas la que posteo Al Zuwaga, esta super buena....el problema es que yo necesito ademas de pasarle el numero de pagina actual, los criterios de busqueda que estoy desarrollando en un buscador...yo lo tengo con el tipico "10 anteriores y 10 siguientes" y paso los datos asi :

Código HTML:

Response.Write("<br><hr>")
if PaginaActual > 1 then
Response.Write(" <A HREF=validar2.asp?tecnico="&tecnico&"&estado="&estado&"&fecha_1="&fecha_1&"&guia_d="&guia_d&"&artefacto="&artefacto&"&loc="&loc&"&fecha_2="&fecha_2&"&Categorias="&distribuidor&"&tipo_artefacto="&tipo_artefacto&"&orden="&orden&"&tipo_fecha="&tipo_fecha&"&pagina="&PaginaActual-1&">10 Anteriores</A>&nbsp;&nbsp;&nbsp;")
end if
if PaginaActual < PaginasTotales then
Response.Write(" <A HREF=validar2.asp?tecnico="&tecnico&"&estado="&estado&"&fecha_1="&fecha_1&"&guia_d="&guia_d&"&artefacto="&artefacto&"&loc="&loc&"&fecha_2="&fecha_2&"&Categorias="&distribuidor&"&tipo_artefacto="&tipo_artefacto&"&orden="&orden&"&tipo_fecha="&tipo_fecha&"&pagina="&PaginaActual+1&">10 Siguientes</A>")
end if

este es el codigo de la barra de navegacion (Creditos de Al Zuwaga y 3pies)

Código HTML:

<%
Function BarraDeNavegacion(PaginasTotales, PaginaActual)
        'Modificar el contenido de las constantes para cambiar el aspecto de la barra de navegación
        const EstiloDeLaTabla = "border: 1px solid #D6AD6B; font-family: Arial, Helvetica, sans-serif; font-size: 10px;"
        const EstiloCeldaPaginaXdeY = "color: #846B42; background-color: #D6AD6B;"
        const LinkDelEnlace = "link1"
        const EstiloDeLaCeldaPaginaActual = "background-color:#EFD6AD; font-weight:bold;"
        const EstiloDeLaCeldaPaginaConLink = "background-color:#F7E7C6"

        if PaginasTotales > 1 then
                if PaginasTotales > 5 then MostrarUltima = true       
                TablaConBarraDeNavegacion = "<table border=""0"" cellpadding=""2"" cellspacing=""1"" style=""" & EstiloDeLaTabla & """><tr><td style=""" & EstiloCeldaPaginaXdeY & """>&nbsp; P&aacute;gina " & PaginaActual & " de " & PaginasTotales & "&nbsp;&nbsp;</td>"
                if PaginaActual >= 4 then
                        TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?pagina=1"" class=""" & LinkDelEnlace & """><strong>«</strong> Primera</a></td>"
                        CantidadAMostrarDeAnterioresYPosteriores = 2
                        'Indicamos la celda central como activa, y sin link
                        '(la 3ª, de las 5 mostradas), y el resto con link
                        for i = 1 to 5
                                'No mostramos link si estamos en la 3ª celda de las 5 mostradas
                                if i = 3 then
                                        TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style=""" & EstiloDeLaCeldaPaginaActual & """>" & PaginaActual & "</td>"
                                else
                                'Mostramos el link si estamos en las celdas distintas de la 3ª (la central)
                                        TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style=""" & EstiloDeLaCeldaPaginaConLink & """><a href="""& PaginaActualBarraDeNavegacion & "?pagina=" & PaginaActual - CantidadAMostrarDeAnterioresYPosteriores & """ class=""" & LinkDelEnlace & """>" & PaginaActual - CantidadAMostrarDeAnterioresYPosteriores & "</a></td>"
                                end if

                                if PaginaActual - CantidadAMostrarDeAnterioresYPosteriores = PaginasTotales then
                                        MostrarUltima = False
                                        Exit For
                                end if

                                CantidadAMostrarDeAnterioresYPosteriores = CantidadAMostrarDeAnterioresYPosteriores - 1
                        next
                else
                        if PaginasTotales < 5 then
                                for i = 1 to PaginasTotales
                                        if i <>
PaginaActual then
                                                TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?pagina=" & i & """ class=""" & LinkDelEnlace & """>" & i & "</a></td>"
                                        else
                                                TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaActual &""">" & i & "</td>"
                                        end if
                                next
                        else
                                For i = 1 to 5
                                        if i <> PaginaActual then
                                                TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?pagina=" & i & """ class=""" & LinkDelEnlace & """>" & i & "</a></td>"
                                        else
                                                TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaActual &""">" & i & "</td>"
                                        end if
                                next
                        end if
                end if

                if MostrarUltima = true then TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?pagina=" & PaginasTotales & """ class=""" & LinkDelEnlace & """>&Uacute;ltima <strong>»</strong></a></td>"
                TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "</tr></table>"
                BarraDeNavegacion = TablaConBarraDeNavegacion
        end if
end Function
%>


y se llama a la funcion asi :

Código:

<%=BarraDeNavegacion(PaginasTotales, PaginaActual)%>
hasta ahi todo bien..el problema es que por mas que lo he intentado no me resulta pasarle los criterios de la busqueda que estoy consultando....

De antemano Muchas Gracias

i_e_s27 10/04/2008 01:23

Re: Problema con Paginacion de Resultados
 
Pegale una mirada a esta pagina, aver si ahi puedes sacar tu duda.

Saludos! :adios:

darkmcloud 10/04/2008 07:12

Re: Problema con Paginacion de Resultados
 
Cita:

Iniciado por i_e_s27 (Mensaje 2357303)
Pegale una mirada a esta pagina, aver si ahi puedes sacar tu duda.

Saludos! :adios:

pero eso no es lo que necesito, si ves mas arriba, te daras cuenta que yo paso los enlaces como aparece en esa pagina, yo necesito que pase los enlaces con el criterio de busqueda seleccionado, ya que el que aparece en aspfacil no pasa criterios de busqueda, solo le da el 10 paginas anteriores y siguientes

De antemano muchas gracias

Myakire 10/04/2008 07:21

Re: Problema con Paginacion de Resultados
 
No me quedó claro.

¿puedes aclararme este párrafo?

Cita:

el problema es que yo necesito ademas de pasarle el numero de pagina actual, los criterios de busqueda que estoy desarrollando en un buscador
¿o sea como?

JuanRAPerez 10/04/2008 07:47

Re: Problema con Paginacion de Resultados
 
ve a la funcion y en la funcion declara una variable nueva llamada

MisCondiciones, y has esto

Cita:

MisCondiciones = "&tecnico="&tecnico&"&estado="&estado&"&fecha_1="& fecha_1 (etc)
Busca el momento en la funcion donde se escribe el enlace <a href.... y ahi adiciona despues de el numero de pagina las demas condiciones


Cita:

<a href="""& PaginaActualBarraDeNavegacion & "?pagina=" & PaginasTotales & MisCondiciones ....

ojo: si utilizas la funcion para varias paginaciones MisCondiciones tiene que ser declarada en la pagina donde mostraras la paginación, y en la funcion solo mandas el valor de MisCondiciones

Quedaria algo asi:
Cita:

<%=BarraDeNavegacion(PaginasTotales, PaginaActual, MisCondiciones)%>
suerte

darkmcloud 10/04/2008 20:01

Re: Problema con Paginacion de Resultados
 
Compadre.....hice lo que tu me dijiste y no me resulta....pongo el codigo con las modificaciones que tu dijiste con solo 2 variables en MisCondiciones :



<%
Function BarraDeNavegacion(PaginasTotales, PaginaActual, MisCondiciones)
'Modificar el contenido de las constantes para cambiar el aspecto de la barra de navegación
const EstiloDeLaTabla = "border: 1px solid #D6AD6B; font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-color: black "
const EstiloCeldaPaginaXdeY = "color: #846B42; background-color: white"
const LinkDelEnlace = "link1"
const EstiloDeLaCeldaPaginaActual = "background-color:#EFD6AD; font-weight:bold;"
const EstiloDeLaCeldaPaginaConLink = "background-color:black"


MisCondiciones = "&tecnico="&tecnico&"&estado="&estado&""

if PaginasTotales > 1 then
if PaginasTotales > 5 then MostrarUltima = true
TablaConBarraDeNavegacion = "<table border=""0"" cellpadding=""2"" cellspacing=""1"" style=""" & EstiloDeLaTabla & """><tr><td style=""" & EstiloCeldaPaginaXdeY & """>&nbsp; P&aacute;gina " & PaginaActual & " de " & PaginasTotales & "&nbsp;&nbsp;</td>"
if PaginaActual >= 4 then
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?pagina=1"" class=""" & LinkDelEnlace & "MisCondiciones" & """><strong>«</strong> Primera</a></td>"
CantidadAMostrarDeAnterioresYPosteriores = 2
'Indicamos la celda central como activa, y sin link
'(la 3ª, de las 5 mostradas), y el resto con link
for i = 1 to 5
'No mostramos link si estamos en la 3ª celda de las 5 mostradas
if i = 3 then
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style=""" & EstiloDeLaCeldaPaginaActual & """>" & PaginaActual & "</td>"
else
'Mostramos el link si estamos en las celdas distintas de la 3ª (la central)
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style=""" & EstiloDeLaCeldaPaginaConLink & """><a href="""& PaginaActualBarraDeNavegacion & "?pagina=" & PaginaActual - CantidadAMostrarDeAnterioresYPosteriores & """ class=""" & LinkDelEnlace & "MisCondiciones" & """>" & PaginaActual - CantidadAMostrarDeAnterioresYPosteriores & "</a></td>"
end if

if PaginaActual - CantidadAMostrarDeAnterioresYPosteriores = PaginasTotales then
MostrarUltima = False
Exit For
end if

CantidadAMostrarDeAnterioresYPosteriores = CantidadAMostrarDeAnterioresYPosteriores - 1
next
else
if PaginasTotales < 5 then
for i = 1 to PaginasTotales
if i <> PaginaActual then
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?pagina=" & i & """ class=""" & LinkDelEnlace & MisCondiciones & """>" & i & "</a></td>"
else
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaActual &""">" & i & "</td>"
end if
next
else
For i = 1 to 5
if i <> PaginaActual then
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?pagina=" & i & """ class=""" & LinkDelEnlace & MisCondiciones & """>" & i & "</a></td>"
else
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaActual &""">" & i & "</td>"
end if
next
end if
end if

if MostrarUltima = true then TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?pagina=" & PaginasTotales & """ class=""" & LinkDelEnlace & "MisCondiciones" & """>&Uacute;ltima <strong>»</strong></a></td>"
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "</tr></table>"
BarraDeNavegacion = TablaConBarraDeNavegacion
end if
end Function

%>


y la llamo asi :

<%=BarraDeNavegacion(PaginasTotales, PaginaActual, MisCondiciones)%>

pero no me resulta....o sea no me recupera los valores de tecnico y estado...cuando mostraba los enlaces sin esta barra de navegacion y solo estaba con el de 10 anteriores y 10 siguientes funcionaba bien.....pero con la barra no....
¿Que podra ser ??

De antemano muchas gracias

darkmcloud 11/04/2008 11:06

Re: Problema con Paginacion de Resultados
 
He estado intentando resolverlo y no pasa nada !!! sera de casualidad algun problema con esta linea ???

Cita:

TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?pagina=1"" class=""" & LinkDelEnlace & "MisCondiciones" & """><strong>«</strong> Primera</a></td>"
sera acaso que paso mal el valor de MisCondiciones ???

O Sera que declaro mal MisCondiciones ???

Cita:

MisCondiciones = "&tecnico="&tecnico&"&estado="&estado&""
o Acaso lo llamo mal al final de la pagina ???

Cita:

<%=BarraDeNavegacion(PaginasTotales, PaginaActual, MisCondiciones)%>
porque cuando acerco el mouse a la barra de navegacion solo aparece esto :

o sea solo le da el valor de la siguiente pagina pero no mis 2 criterios que estoy realizando en la busqueda que son "tecnico" y "estado"

De Antemano Muchas Gracias

darkmcloud 15/04/2008 13:24

Re: Problema con Paginacion de Resultados
 
Bueno amigos de foros del web....luego de mucho pensar y derretir el cerebro pensando ...:pensando:
encontre la solucion !!!!!!!!!!
les adjunto el codigo correcto, me fije que tenia 2 problemas.....primero que en la declaracion de la funcion "barra de navegacion" habia que declarar ademas la variable "mis condiciones" de esta forma :

Código:

Function BarraDeNavegacion(PaginasTotales, PaginaActual, MisCondiciones)
y el segundo error estaba aqui :

Cita:

TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?pagina=1"" class=""" & LinkDelEnlace & "MisCondiciones" & """><strong>«</strong> Primera</a></td>"
estaba creando los links de los enlaces y despues le pasaba los parametros de "mis condiciones"
el codigo correcto es este :

Cita:

<%
Function BarraDeNavegacion(PaginasTotales, PaginaActual, MisCondiciones)
'Modificar el contenido de las constantes para cambiar el aspecto de la barra de navegación
const EstiloDeLaTabla = "border: 1px solid #D6AD6B; font-family: Arial, Helvetica, sans-serif; font-size: 12px;"
const EstiloCeldaPaginaXdeY = "color: white; background-color: black;"
const LinkDelEnlace = "link1"
const EstiloDeLaCeldaPaginaActual = "background-color:#EFD6AD; font-weight:bold;"
const EstiloDeLaCeldaPaginaConLink = "background-color:#F7E7C6"

'Modificar el contenido de las condiciones de acuerdo a lo parametros de la consulta...solo dejar sin cambios el valor &v1
MisCondiciones = "&v1="&v1&"&tecnico="&tecnico&"&estado="&estado&"& loc="&loc&"&tipo_artefacto="&tipo_artefacto&"&orde n="&orden&""

if PaginasTotales > 1 then
if PaginasTotales > 5 then MostrarUltima = true
TablaConBarraDeNavegacion = "<table border=""0"" cellpadding=""2"" cellspacing=""1"" style=""" & EstiloDeLaTabla & """><tr><td style=""" & EstiloCeldaPaginaXdeY & """>&nbsp; P&aacute;gina " & PaginaActual & " de " & PaginasTotales & "&nbsp;&nbsp;</td>"
if PaginaActual >= 4 then
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?pagina=1" & MisCondiciones &""" class=""" & LinkDelEnlace & """><strong>«</strong> Primera</a></td>"
CantidadAMostrarDeAnterioresYPosteriores = 2
'Indicamos la celda central como activa, y sin link
'(la 3ª, de las 5 mostradas), y el resto con link
for i = 1 to 5
'No mostramos link si estamos en la 3ª celda de las 5 mostradas
if i = 3 then
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style=""" & EstiloDeLaCeldaPaginaActual & """>" & PaginaActual & "</td>"
else
'Mostramos el link si estamos en las celdas distintas de la 3ª (la central)
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style=""" & EstiloDeLaCeldaPaginaConLink & """><a href="""& PaginaActualBarraDeNavegacion & "?pagina=" & PaginaActual - CantidadAMostrarDeAnterioresYPosteriores & MisCondiciones & """ class=""" & LinkDelEnlace & """>" & PaginaActual - CantidadAMostrarDeAnterioresYPosteriores & "</a></td>"
end if

if PaginaActual - CantidadAMostrarDeAnterioresYPosteriores = PaginasTotales then
MostrarUltima = False
Exit For
end if

CantidadAMostrarDeAnterioresYPosteriores = CantidadAMostrarDeAnterioresYPosteriores - 1
next
else
if PaginasTotales < 5 then
for i = 1 to PaginasTotales
if i <> PaginaActual then
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?pagina=" & i & MisCondiciones & """ class=""" & LinkDelEnlace & """>" & i & "</a></td>"
else
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaActual &""">" & i & "</td>"
end if
next
else
For i = 1 to 5
if i <> PaginaActual then
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?pagina=" & i & MisCondiciones &""" class=""" & LinkDelEnlace & """>" & i & "</a></td>"
else
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaActual &""">" & i & "</td>"
end if
next
end if
end if

if MostrarUltima = true then TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?pagina=" & PaginasTotales & MisCondiciones &""" class=""" & LinkDelEnlace & """>&Uacute;ltima <strong>»</strong></a></td>"
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "</tr></table>"
BarraDeNavegacion = TablaConBarraDeNavegacion
end if
end Function
%>
este codigo adjuntenlo a su codigo de paginacion de resultados y luego donde quieren mostrar los enlaces de las paginas despues de la etiqueta <TABLE>

colocan lo siguiente :
Código:

<%=BarraDeNavegacion(PaginasTotales, PaginaActual, MisCondiciones)%>
espero que les sirva y hasta pronto !!!
GRACIAS TOTALES!!!

JuanRAPerez 15/04/2008 13:28

Re: Problema con Paginacion de Resultados
 
jajaja me descuide de el post pero me alegra encontraras la solucion...

lup!

darkmcloud 15/04/2008 13:34

Re: Problema con Paginacion de Resultados
 
Cita:

Iniciado por JuanRAPerez (Mensaje 2365113)
jajaja me descuide de el post pero me alegra encontraras la solucion...

lup!


jajajjaja:adios:
he aprendido que a veces es bueno no ser comodo y encontrar uno mismo la solucion...:si:.
que crees amigo ??
sera bueno postear el codigo "modificado" en las FAQS de asp ??
ya que veo que bastantes personas preguntan una y otra vez el tema de la paginacion...creo que les posteare mi codigo que es una busqueda multiple con distintos criterios de busqueda, paginacion de resultados y ordenacion de tablas al presionar el nombre de la columna....cuando tenga tiempo creo que lo compartire....

Hasta pronto y muchas gracias por responder nuestros temas foros del web !!!


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

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.