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

Duda al Paginar en ASP

Estas en el tema de Duda al Paginar en ASP en el foro de ASP Clásico en Foros del Web. Buenas tardes, tengo una base de datos en la que deseo pues paginar los resultados de la misma, el problema viene a la hora de ...
  #1 (permalink)  
Antiguo 12/10/2009, 10:34
Avatar de Wasper  
Fecha de Ingreso: julio-2006
Ubicación: de cai, picha!!!
Mensajes: 1.030
Antigüedad: 17 años, 10 meses
Puntos: 41
Duda al Paginar en ASP

Buenas tardes, tengo una base de datos en la que deseo pues paginar los resultados de la misma, el problema viene a la hora de mostrar la cantidad de paginas.

La paginacion esta estupenda cuando se muestran por ejemplo 10 o 20 paginas de este modo:

<1 2 3 4 5 6 7 8 9 10>Siguiente

Pero cuando me da como resultado 100 o 200 paginas se convierte en:

<1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40....>Siguiente

Llenandome la pantalla de numeros, he estado intentando hacerlo por bloques pero no consigo los resultados deseados, alguna idea para mostrar siempre bloques de 10 en 10 paginas o 20 en 20 como hace Google o que los resultados sean como muestro abajo:

Resultados 250 paginas
<1 2 3 4 5 6 7 8 9 10...>Siguiente
Anterior<...10 11 12 13 14 15 16 17 18 19 20...>Siguiente

Muchisimas gracias

Saludos, Jose
  #2 (permalink)  
Antiguo 12/10/2009, 13:31
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Duda al Paginar en ASP

Hola

En la biblioteca de este foro tienes lo que buscas

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 12/10/2009, 14:48
Avatar de Wasper  
Fecha de Ingreso: julio-2006
Ubicación: de cai, picha!!!
Mensajes: 1.030
Antigüedad: 17 años, 10 meses
Puntos: 41
Respuesta: Duda al Paginar en ASP

Muchas gracias Adler, parece que eslo que busco, le hare algunos cambios al codigo para poder poner un rango mayor que 5 paginas y arreglare algunos botones que no funcionan bien... por lo demas esta estupendo...

muchisimas gracias de nuevo.

Saludos, jose
  #4 (permalink)  
Antiguo 14/10/2009, 08:46
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Duda al Paginar en ASP

Cheque el mismo codigo se ve bastante bueno lo aplicare en mi aplicacion para mis resultados
  #5 (permalink)  
Antiguo 14/10/2009, 17:20
Avatar de Wasper  
Fecha de Ingreso: julio-2006
Ubicación: de cai, picha!!!
Mensajes: 1.030
Antigüedad: 17 años, 10 meses
Puntos: 41
Respuesta: Duda al Paginar en ASP

Os posteo una nueva version del paginador que me ha paso mi amigo Adler.

Datos de la nueva version del paginador:
- Añadido botones de Siguiente y Anterior
- Eliminado el boton de Ultimo (por lo que a mi respecta no sirve de nada)
- Añadido el envio de un nuevo campo a la funcion llamado paginador, se le envia un numero y nos mostrara en el paginador tantas paginas como la cantidad enviada (antes estaba limitado a visualizar 5 paginas, era muy poco)

Meter en un archivo llamado funcion.asp este codigo
Código:
<%
Function BarraDeNavegacion(PaginasTotales, PaginaActual, paginador)
	'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 > paginador 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 & "?buscar=" & "&paginaactual=1" & """ class=""" & LinkDelEnlace & """><strong>«</strong> Primera</a></td>"
			CantidadAMostrarDeAnterioresYPosteriores = 2
		end if
		'NUEVA LINEA QUE AGREGA LA POSIBILIDAD DE IR A LA PAGINA SIGUIENTE
		if PaginaActual >= 4 then
			TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?buscar=" & "&paginaactual=" & PaginaActual-1 & """ class=""" & LinkDelEnlace & """><strong>«</strong> Anterior</a></td>"
		'AQUI TERMINA LA PARTE DE IR A SIGUIENTE
			'Indicamos la celda central como activa, y sin link
			'(la 3ª, de las 5 mostradas), y el resto con link
			for i = 1 to paginador
				'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 & "?buscar=" & "&paginaactual=" & 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 < paginador then
				for i = 1 to PaginasTotales
					if i <> PaginaActual then
						TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?buscar=" & "&paginaactual=" & 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 paginador
					if i <> PaginaActual then 'AQUI ESTAN LOS LINKS DE LOS NUMEROS
						TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?buscar=" & "&paginaactual=" & 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 PaginasTotales <> PaginaActual then TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?buscar=" & "&paginaactual=" & Paginaactual+1 & """ class=""" & LinkDelEnlace & """>Siguiente <strong>»</strong></a></td>"
		TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "</tr></table>"
		BarraDeNavegacion = TablaConBarraDeNavegacion
	end if
end Function
%>
Despues en vuestras paginas ASP debereis llamar a la funcion de esta manera
Código:
<%=BarraDeNavegacion(maxpagina, int(pagina_actual), long_paginador)%>
Los campos necesarios a enviar son Maximo de paginas (total), la pagina actual, tamaño del paginador.

Espero que os ayude como me ha ayudado a mi.

Podreis editar luego los estilos y demas.

Saludos, J@se
__________________
Saludos, Jose

Paginas web y SEO
Anuncios por palabras

Última edición por Wasper; 17/10/2009 a las 04:26
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 04:49.