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

Función CreaNav de A_Z, corregida

Estas en el tema de Función CreaNav de A_Z, corregida en el foro de ASP Clásico en Foros del Web. Hola a todos... Después de algo más de 1 hora, 31 minutos, y 46 segundos, yendo a piñón fijo, he conseguido solucionar el problemilla de ...
  #1 (permalink)  
Antiguo 06/09/2005, 00:59
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
Función CreaNav de A_Z, corregida

Hola a todos...

Después de algo más de 1 hora, 31 minutos, y 46 segundos, yendo a piñón fijo, he conseguido solucionar el problemilla de la función de Al Zuwaga (función para paginar, al estilo foros del web), pues me daba algunos problemas para determinadas paginaciones (cuando mostraba las páginas iniciales, creo recordar que las 4 o 5 primeras, salía la lista completa de todas las páginas).

Se trata de una función que te permite ver al pie de la página (o allí donde la coloques), un listado del tipo:

<<Primera|17|18|19|20|21|Última>>

De tal forma que si tienes muchas páginas, solo muestra 5, siendo la página central, la página que estamos visualizando en ese momento.

La función a la que me refiero es esta:
http://www.forosdelweb.com/showpost....3&postcount=57

Le he cambiado el nombre, y los nombres de las variables, porque me manejo mejor con nombres completos (por aquello de que quizás son algo más descriptivos). Así que le pido excusas al maestro A_Z, por haberle metido mano a su función

Código:
<%
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 llamamos a la función así:

Código:
<%=BarraDeNavegacion(PaginasTotales, PaginaActual)%>
La función solo rula, si muestras 5 páginas al pie. Creo que si quieres mostrar otra cantidad, habría que hacer más de un cambio (aunque no lo he probado con profundidad).

Los derechos de autor son de Al Zuwaga, así que si quereis pagarle una cervecita, seguro que os lo agradece
  #2 (permalink)  
Antiguo 20/08/2013, 08:16
 
Fecha de Ingreso: febrero-2009
Mensajes: 23
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Función CreaNav de A_Z, corregida

hola,

Se que este tema es de hace mucho tiempo.

Lo primero que quiero hacer es felicitarte y darte las gracias por compartirlo.

Lo segundo es que estoy utilizando tu código con un paginar que tenia y funciona bien excepto por una cosa, cuando entro en el paginar la primera pagina el número 1 me aparece en negrita y sin vinculo pero una vez que pulso la segunda pagina esa y las siguientes hasta llegar a la cuarta aparecen con enlace y sin negrita, vamos que no sabes en que pagina estas y cuando pasas a delante y la 4 y 5 y sucesivas se muestran correctamente. Sabes como puedo solucionar esto de que se quite el vinculo en las primeras paginas y aparezca en negrita?

gracias y un saludo
  #3 (permalink)  
Antiguo 20/08/2013, 09:08
 
Fecha de Ingreso: febrero-2009
Mensajes: 23
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Función CreaNav de A_Z, corregida

hola de nuevo,

también me gustaría saber si se puede hacer para que los link de primera y ultima aparezcan, el de primera justo después en la segunda pagina y el de ultima hasta la penúltima pagina.

gracias
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:05.