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í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> |