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

varias páginas...AYUDA POR FAVOR

Estas en el tema de varias páginas...AYUDA POR FAVOR en el foro de ASP Clásico en Foros del Web. Tengo una BD en SQL Server...puedo hacer las consultas de forma normal...en el objeto RS me almacena los registros que quiero, pero tengo un ligero ...
  #1 (permalink)  
Antiguo 16/02/2006, 09:39
 
Fecha de Ingreso: febrero-2005
Mensajes: 29
Antigüedad: 20 años, 2 meses
Puntos: 0
Pregunta varias páginas...AYUDA POR FAVOR

Tengo una BD en SQL Server...puedo hacer las consultas de forma normal...en el objeto RS me almacena los registros que quiero, pero tengo un ligero problema...

Tengo una vaga idea para hacer esto, pero la verdad dudo que funcione...Consiste en dividir el objeto RS para poder visualizarlo por partes en varias páginas, cito un ejemplo...

Tengo algunos mensajes en una consulta, muestro los primeros 10 mensajes en una página, y en la parte superior o inferior aparecen enlaces a la página 2, 3, 4, etc...

1 [2] [3] [4] [5]... y al dar clic en el número 2, muesta los siguientes 10 mensajes y así sucesivamente...

AYUDA POR FAVOR... No importa si es en JavaScript o VBScript...solo ayuda por favor...
  #2 (permalink)  
Antiguo 16/02/2006, 09:55
Avatar de a n g e l u s  
Fecha de Ingreso: enero-2006
Ubicación: Chile
Mensajes: 237
Antigüedad: 19 años, 3 meses
Puntos: 1
MMM... ESO SE LLAMA PAGINACION, la solucion esta en www.asptutor.com/asp/vart.asp?id=122.
__________________
Atte,
A n g e l u s
Concepción - Chile
más vale respuestas bien pensadas, que 7000 post
  #3 (permalink)  
Antiguo 16/02/2006, 10:35
Avatar de gorka_arai  
Fecha de Ingreso: octubre-2005
Mensajes: 281
Antigüedad: 19 años, 6 meses
Puntos: 1
Wenaass, si no te aclaras con la información del enlace que te pasó el koleguita angelus ahí va esto. A mi me funciona a la perfección, sólo has de realizar unos mínimos cambios en el código para que todo te funcione a la perfección:

Código:
<HTML>
<BODY>
<%
Dim mostrar 'cantidad de registros a mostrar por página
Dim cant_paginas 'cantidad de páginas que recibimos
Dim pagina_actual 'La página que mostramos
Dim registro_mostrado 'Contador utilizado para mostrar las páginas
Dim I 'Variable Loop
dim strsql 'Consulta sql

mostrar = 20 ' Pueden modificar este número para cambiar la cantidad de registros por página

' IF para saber que página mostrar
If Request.QueryString("page") = "" Then
pagina_actual = 1
Else
pagina_actual = CInt(Request.QueryString("page"))
End If
'Conexión con la BD
dim conex,reg,sql,usuario 
set conex=server.CreateObject("ADODB.Connection")
set reg=server.CreateObject("ADODB.Recordset")
conex.ConnectionString="provider=microsoft.jet.oledb.4.0; data source=" & server.MapPath("tubase.mdb")
conex.Open 
sql="consulta_sql"
reg.Open sql,conex,3,2
' Creamos el RecordSet y definimos la cantidad de registros a mostrar
reg.PageSize = mostrar
reg.CacheSize = mostrar
'contamos las páginas que se formaron con la variable mostrar.
cant_paginas = reg.PageCount
' Si el pedido de página cae fuera del rango,
' lo modificamos para que caiga dentro
If pagina_actual > cant_paginas Then pagina_actual = cant_paginas
If pagina_actual < 1 Then pagina_actual = 1

' Si la cantidad de páginas da 0 es que no hay registros... por eso este IF
If cant_paginas = 0 Then%>
	<%Response.Write("NO HAY REGISTROS")%>
<%Else
' Nos movemos a la página elegida
reg.AbsolutePage = pagina_actual
' Mostramos el dato de que página estamos...
%>
<FONT face=Arial><FONT>
<FONT SIZE="+1">Página <B><%= pagina_actual %></B> de <B><%= cant_paginas %></B></FONT>
<%
' Espacios
Response.Write "<BR><BR>" & vbCrLf
'iniciamos la tabla donde mostraremos todo
Response.Write "<TABLE BORDER=""1"" width=""300"">" & vbCrLf%>
<tr bgcolor=red>
				<th colspan=20><FONT face=Arial size=2><STRONG><FONT color=ivory>TITULO GENERAL</STRONG></FONT></FONT></th>
			</tr><br>
<%' Mostramos los titulos de las columnas... (pueden sacar ese FOR para eliminar eso)
Response.Write vbTab & "<TR>" & vbCrLf
For I = 0 To reg.Fields.Count - 1
Response.Write vbTab & vbTab & "<TD><B><FONT face=Arial size=2 color=mediumblue>"
Response.Write reg.Fields(I).Name
Response.Write "<B></TD></FONT>" & vbCrLf
Next 'I
Response.Write vbTab & "</TR>" & vbCrLf

' Hacemos el bucle mostrando los datos del registro
registro_mostrado = 0
Do While registro_mostrado < mostrar And Not reg.EOF
Response.Write vbTab & "<TR>" & vbCrLf
For I = 0 To reg.Fields.Count - 1
Response.Write vbTab & vbTab & "<TD>"
Response.Write reg.Fields(I)
Response.Write "</TD>" & vbCrLf
Next 'I
Response.Write vbTab & "</TR>" & vbCrLf

' Sumamos 1 a los mostrados
registro_mostrado = registro_mostrado + 1
' Nos movemos al próximo registro...
reg.MoveNext
Loop

'listo...
Response.Write "</TABLE>" & vbCrLf
End If

' Cerramos y limpiamos...
reg.Close
Set reg = Nothing
conex.Close
Set conex = Nothing

' Ahora mostramos los enlaces a las otras páginas con el resto de los registros...
If pagina_actual > 1 Then
%>
</FONT></FONT>
<A href="./paginar.asp?eje=30&amp;page=<%= pagina_actual - 1 %>" ><FONT 
face=Arial>[&lt;&lt; Anterior]</FONT> </a>
<%
End If

' mostramos la paginacion por numeros de página
For I = 1 To cant_paginas
If I = pagina_actual Then
%>
<%= I %>
<%
Else
%>
<FONT face=Arial> </FONT>
<A href="./paginar.asp?eje=30&amp;page=<%= I %>" ><%= I %></a>
<%
End If
Next 'I

If pagina_actual < cant_paginas Then
%>
<A href="./paginar.asp?eje=30&amp;page=<%= pagina_actual + 1 %>" ><FONT 
face=Arial>[Próximo &gt;&gt;]</FONT ></a>
<%
End If
'Fin...
%>
</BODY>
</HTML>
Llama a este archivo "paginar.asp" y LISTO!!!
Agur
  #4 (permalink)  
Antiguo 16/02/2006, 14:47
Avatar de asm_mripZ  
Fecha de Ingreso: febrero-2002
Ubicación: Panamá
Mensajes: 212
Antigüedad: 23 años, 2 meses
Puntos: 0
También acá explican como hacerlo http://www.webthang.co.uk/tuts/tuts_...s/pagenums.asp (esta en inglés)
__________________
-- May the LinuxForce be with you --
  #5 (permalink)  
Antiguo 17/02/2006, 14:17
 
Fecha de Ingreso: febrero-2005
Mensajes: 29
Antigüedad: 20 años, 2 meses
Puntos: 0
De acuerdo Gracias...

Les agradezco la ayuda, funcionó correctamente...gracias a todos...

Saludos...
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 08:12.