ASP - Paginar resultados

 
Vista:

Paginar resultados

Publicado por gonsales (11 intervenciones) el 01/08/2001 12:17:57
Hola:
tengo una página que coge datos de una BD y los muestra.Me gustaría saber cómo se podría hacer para mostrar los resultados como en los buscadores, en varias páginas, mostrando por ejemplo 5 registros por página.
¿Cómo se hace esto?
Gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Paginar resultados

Publicado por David Grimaldi (125 intervenciones) el 01/08/2001 12:41:15
Hola.

Esto se haría llamando a la pagina pasandole un parámetro de la página a mostrar. p.e.: pagina.asp?pag=1

Suponiendo que tienes los resultados de la consulta o tabla en el recordset "rst", el contenido del código asp de la página sería el siguiente:

<%
rst.movefirst
for i=1 to 5*(request.querystring("pag")-1) 'con esto nos colocamos en el primer registro de la página pag
rst.movenext
next i
i=1
do while not rst.eof
%>
<!-- Aqui pones las lineas HTML para sacar los datos de rst (en una tabla p.e.) -->
<%
if i=5 then exit do 'si ya he sacado cinco termino
i=i+1
rst.movenext
loop
%>

Despues queda hacer el típico "navegador" por enlaces: (<< 1 2 3... >>) Intentalo hacerlo tu. Si tienes problemas no dudes en volver a preguntar. Espero haberte ayudado.

Un saludo:
David Grimaldi.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Paginar resultados

Publicado por gonzo (11 intervenciones) el 01/08/2001 16:20:55
Muuuchas gracias, pero....
no me acabo de aclarar (llevo muy poco con esto del ASP).
Te cuento:
tengo un menú desde el que se llama a la página "listado.asp", en la que conecto con la BD, obtengo los registros necesarios y los muestro en pantalla.
¿Cómo le paso la "page" desde el menú?.
¿O no es necesario? (la verdad es que no he tenido casi tiempo de analizar lo que me has mandado; ahora lo miraré más a fondo)
Gracias de nuevo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Paginar resultados

Publicado por David Grimaldi (125 intervenciones) el 01/08/2001 16:52:07
Hola.

Es sencillo. Donde tengas el enlace a "listado.asp" añades detras del nombre de la página "?page=1" (Quedaría "listado.asp?page=1") así verías en la página ASP los cinco (si mantenemos este número del ejemplo anterior) primeros registros. Despues aqui se tendría que haber mostrado los enlaces a las demás páginas. Como veo que estas aprendiendo te voy a poner un pequeño ejemplo. Espero que sea lo bastante comprensible. Continuamos detras del código de la nota anterior:

<%
num_reg=rst.recordcount
'Recordcount no se por qué pero a veces no va bien. si te falla pon lo siguiente

'rst.close
'x="SELECT COUNT(*) AS NUM_REGS FROM tabla WHERE ..." 'la misma condicion con que sacaste los registros a paginar.
'rst.open x 'añade la conexión el tipo de cursor...
'num_reg=rst("NUM_REGS")
'ahora seguiriamos

rst.close
num_pag=num_reg\5 'división entera para ver cuantas páginas salen
if num_reg mod 5>0 then num_pag=num_pag+1 'una página más para el resto de registros (si los hay)
if cint(request.querystring("pag"))>1 then 'si no estamos en la pagina primera añado el enlace a página anterior
response.write "<a href='pagina.asp?pag=" & cint(request.querystring("pag"))-1 & "'>anterior</a>  "
end if
for i=1 to num_pag 'pongo enlaces a todas las páginas
if num_pag<>cint(request.querystring("pag")) then
response.write "<a href='pagina.asp?pag=" & i & "'>" & i & "</a>  "
else 'si estamos poniendo el número de la página actual no pongo e
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Paginar resultados

Publicado por David Grimaldi (125 intervenciones) el 01/08/2001 16:55:51
'si estamos poniendo el número de la página actual no pongo enlace pero si el número
response.write i & "  "
end if
next
if cint(request.querystring("pag"))<num_pag then 'si no estamos en la última página ponemos el enlace a página siguiente.
response.write "<a href='pagina.asp?pag=" & cint(request.querystring("pag"))+1 & "'>siguiente</a>"
end if
%>

Espero que esto te ayude. Te recomiendo que consultes tutoriales, referencias (las de Visual Studio, MSDN y IIS ayudan mucho), libros, profesores... e intentes desarrollar tu mismo cosas que se te ocurran.

Un saludo:
David Grimaldi.
Cádiz (España)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar