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

Paginación de resultadode una busqueda

Estas en el tema de Paginación de resultadode una busqueda en el foro de ASP Clásico en Foros del Web. Que tal, estoy realizando una página de acceso a datos con su respectiva opción de búsqueda en ASP, se realiza la búsqueda correctamente y de ...
  #1 (permalink)  
Antiguo 29/03/2004, 14:26
 
Fecha de Ingreso: marzo-2004
Mensajes: 12
Antigüedad: 20 años, 2 meses
Puntos: 0
Paginación de resultadode una busqueda

Que tal, estoy realizando una página de acceso a datos con su respectiva opción de búsqueda en ASP, se realiza la búsqueda correctamente y de igual forma me muestra la cantidad de páginas con los resultados que se encontraron, el problema esta en que cuando le doy clic a "siguiente" para que me muestre la segunda página de resultados, lo que me muestra es la segunda página de mi paginación en general. Espero me haya explicado y me puedan ayudar por favor.

Si pueden poner un ejemplo en mi paginación se agradecería mucho.


Aqui esta el código:



<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="" content="text/html; charset=iso-8859-1">
</head>

<body>
<div align="center"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Directorio
Consejo Mexicano de Genética</font></strong></div>


<form method="Post" action="Geneticaok6.asp">
<input type="text" name="Criterio" size="20">
<input type="radio" value="V1" checked name="Tipo">
<input type="radio" name="Tipo" value="V2">
<input type="submit" value="Buscar" name="boton1">
<input type="reset" value="Restablecer" name="boton">
</form>


<%

Dim oConn, rs, SQL
Dim PaginaActual ' en qué pagina estamos
Dim PaginasTotales ' cuántas páginas tenemos
Dim TamPagina ' cuantos registros por pagina
Dim CuantosRegistros ' la cuenta que os he mencionado



'MODIFICAR AQUI PARA CAMBIAR EL Nº DE REGISTRO POR PAGINA
TamPagina=5

'Leemos qué página mostrar. La primera vez será la inicial
if Request.Querystring("pagina")="" then
PaginaActual=1
else
PaginaActual=CInt(Request.Querystring("pagina"))
end if

'Creamos los objetos y definimos las propiedades del Recordset.


set oConn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")

' Conexión por OLEDB
oConn.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="+Server.MapPath("Genetica.mdb"))
SQL="SELECT paterno, materno, nombre, situacion, Calle_numero, Colonia, CP, Cd_Pob, Estado, Telefono FROM Especialistas"


Rango=Request("Tipo")
If Rango="1" Then
SQL="Select paterno, materno, nombre, situacion, Calle_numero, Colonia, CP, Cd_Pob, Estado, Telefono From Especialistas Where UCase([paterno])='" & UCase(Request("Criterio")) & "'"
Else
SQL="Select paterno, materno, nombre, situacion, Calle_numero, Colonia, CP, Cd_Pob, Estado, Telefono From Especialistas Where InStr(UCase([paterno]),'" & UCase(Request("Criterio")) & "')>0"
End If



' Defino el tamaño de las páginas
rs.PageSize=TamPagina
rs.CacheSize=TamPagina


' Abro el recordset
rs.Open SQL, oConn, 1, 2

'Cuento las páginas
PaginasTotales=rs.PageCount

'Compruebo que la pagina actual está en el rango
if PaginaActual < 1 then
PaginaActual = 1
end if
if PaginaActual > PaginasTotales then
PaginaActual = PaginasTotales
end if


'Por si la consulta no devuelve registros!
if PaginasTotales=0 then

Response.Write("No se encontraron resultados.")

else

'Vamos a paginar
rs.AbsolutePage=PaginaActual
Response.Write("Pagina " & PaginaActual & " de " & PaginasTotales)
Response.Write("<br><br>")
Response.Write("<TABLE BORDER=""1"">")
Response.Write( "<TD><div align=""center""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif""><strong>Paterno</strong></font></div></TD>" & vbCrlf )
Response.Write( "<TD><div align=""center""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif""><strong>Materno</strong></font></div></TD>" & vbCrlf )
Response.Write( "<TD><div align=""center""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif""><strong>Nombre</strong></font></div></TD>" & vbCrlf )
Response.Write( "<TD><div align=""center""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif""><strong>Situación</strong></font></div></TD>" & vbCrlf )
Response.Write( "<TD><div align=""center""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif""><strong>Calle</strong></font></div></TD>" & vbCrlf )
Response.Write( "<TD><div align=""center""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif""><strong>Colonia</strong></font></div></TD>" & vbCrlf )
Response.Write( "<TD><div align=""center""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif""><strong>C.P.</strong></font></div></TD>" & vbCrlf )
Response.Write( "<TD><div align=""center""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif""><strong>Ciudad/Población</strong></font></div></TD>" & vbCrlf )
Response.Write( "<TD><div align=""center""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif""><strong>Estado</strong></font></div></TD>" & vbCrlf )
Response.Write( "<TD><div align=""center""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif""><strong>Teléfono</strong></font></div></TD>" & vbCrlf )

CuantosRegistros=0
do while not rs.EOF and CuantosRegistros < TamPagina
'Pinto una línea de la tabla por cada registro
Response.Write("<TR>"&VbCrLf)
Response.Write("<TD bordercolor=""#CCCCCC""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif"">"&rs.Fields("paterno")&"</TD>")
Response.Write("<TD bordercolor=""#CCCCCC""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif"">"&rs.Fields("materno")&"</TD>")
Response.Write("<TD bordercolor=""#CCCCCC""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif"">"&rs.Fields("nombre")&"</TD>")
Response.Write("<TD bordercolor=""#CCCCCC""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif"">"&rs.Fields("situacion")&"</TD>")
Response.Write("<TD bordercolor=""#CCCCCC""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif"">"&rs.Fields("Calle_numero")&"</TD>")
Response.Write("<TD bordercolor=""#CCCCCC""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif"">"&rs.Fields("Colonia")&"</TD>")
Response.Write("<TD bordercolor=""#CCCCCC""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif"">"&rs.Fields("CP")&"</TD>")
Response.Write("<TD bordercolor=""#CCCCCC""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif"">"&rs.Fields("Cd_Pob")&"</TD>")
Response.Write("<TD bordercolor=""#CCCCCC""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif"">"&rs.Fields("Estado")&"</TD>")
Response.Write("<TD bordercolor=""#CCCCCC""><font size=""2""face=""Verdana, Arial, Helvetica, sans-serif"">"&rs.Fields("Telefono")&"</TD>")
Response.Write("</TR>")
CuantosRegistros=CuantosRegistros+1
rs.MoveNext
loop
Response.Write("</TABLE>")

end if
rs.Close
oConn.Close
set rs=nothing
set oConn=nothing


'Muestro los enlaces


Response.Write("<hr>")
if PaginaActual > 1 then

Response.Write("<A HREF=./Geneticaok6.asp?pagina="& PaginaActual-1& ">Anterior</A> ")
end if

if PaginaActual < PaginasTotales then
Response.Write("<A HREF=./Geneticaok6.asp?pagina=" & PaginaActual+1 & ">Siguiente</A>")
end if




%>
</div>

<br><center><font face="Arial" size="1"><a href="Geneticaok6.asp">Buscar de nuevo</font><font size="2"><a/>
</a></font>


</body>
</html>
  #2 (permalink)  
Antiguo 29/03/2004, 14:35
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
porque no estás pasando el criterio de búsqueda en los enlaces de "siguiente" y "anterior". Cambiá la siguiente parte del código (marco en bold los agregados):



if PaginaActual > 1 then

Response.Write("<A HREF=./Geneticaok6.asp?pagina=" & PaginaActual-1 & "&Criterio=" & Request("Criterio") & ">Anterior</A> ")
end if

if PaginaActual < PaginasTotales then
Response.Write("<A HREF=./Geneticaok6.asp?pagina=" & PaginaActual+1 & "&Criterio=" & Request("Criterio") & ">Siguiente</A>")
end if
  #3 (permalink)  
Antiguo 30/03/2004, 10:05
 
Fecha de Ingreso: marzo-2004
Mensajes: 12
Antigüedad: 20 años, 2 meses
Puntos: 0
Muchas gracias!!

Gracias por la ayuda dazuaga, exactamente ese era mi error.

Y por supuesto también les quiero agradecer la rápida respuesta a mi problema.

Tiene una página excelente.

Felicidades
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 21:18.