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

Paginar buscador

Estas en el tema de Paginar buscador en el foro de ASP Clásico en Foros del Web. ;) Hola a todos, estoy haciendo un buscador en Asp, la busqueda me resulta prefecta, me muestra todos los resultados en una pagina. he intentado ...
  #1 (permalink)  
Antiguo 20/05/2002, 15:39
 
Fecha de Ingreso: mayo-2002
Mensajes: 18
Antigüedad: 22 años
Puntos: 0
Paginar buscador

;) Hola a todos, estoy haciendo un buscador en Asp, la busqueda me resulta prefecta, me muestra todos los resultados en una pagina. he intentado paginarlo me muestra la cantidad de paginas y cuando paso a la siguiente pagina ya no muestra ningun registro. Me podrian orientar.

Gracias por su ayuda
  #2 (permalink)  
Antiguo 20/05/2002, 15:43
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 5 meses
Puntos: 1
Re: Paginar buscador

Debes pasar los parametros de la busqueda por medio del link de "Pagina Siguiente" Estoy casi seguro de que ese es tu error ya que al pasar a la siguiente página se pierden los parametros de búsqueda.

Saludos

<center><img src="http://www.pcmasmas.com.ar/foro/images/avatars/043.gif"><br>
Urjose</center>
  #3 (permalink)  
Antiguo 20/05/2002, 15:56
 
Fecha de Ingreso: enero-2002
Ubicación: Callao - Perú
Mensajes: 1.127
Antigüedad: 22 años, 5 meses
Puntos: 0
Re: Paginar buscador

Aca te mando un ejemplo recontra util:
-------------------------------------
&lt;%
' Paginas en un recordset
'------------------------
' Carlos de la Orden Dijs
' [email protected]
'------------------------

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 ' para imprimir solo el nº de registro por pagina que queramos

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

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

set oConn=Server.CreateObject(&quot;ADODB.Connection&q uot;)
set rs=Server.CreateObject(&quot;ADODB.Recordset&quot; )

' Conexión por OLEDB
oConn.Open &quot;Provider=Microsoft.Jet.OLEDB.4.0; Data Source=&quot;&amp;Server.MapPath(&quot;ejemplo.mdb &quot;)&amp;&quot;;&quot;
SQL=&quot;SELECT Id, Nombre, Ventas FROM Ventas;&quot;

' 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 &lt; 1 then
PaginaActual = 1
end if
if PaginaActual &gt; PaginasTotales then
PaginaActual = PaginasTotales
end if


SaLuDoS dE:
PePeLuChO dEl PeRú PaRa El MuNdO ;)
  #4 (permalink)  
Antiguo 20/05/2002, 15:58
 
Fecha de Ingreso: enero-2002
Ubicación: Callao - Perú
Mensajes: 1.127
Antigüedad: 22 años, 5 meses
Puntos: 0
Re: Paginar buscador

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

Response.Write(&quot;No se encontraron resultados.&quot;)

else

'Vamos a paginar
rs.AbsolutePage=PaginaActual
Response.Write(&quot;Pagina &quot; &amp; PaginaActual &amp; &quot; de &quot; &amp; PaginasTotales)
Response.Write(&quot;&lt;br&gt;&lt;br&gt;&quot;)
Response.Write(&quot;&lt;TABLE BORDER=&quot;&quot;1&quot;&quot; ALIGN=&quot;&quot;center&quot;&quot; STYLE=&quot;&quot;font-size:75%&quot;&quot;&gt;&quot;)
Response.Write(&quot;&lt;TR&gt;&lt;TD COLSPAN=&quot;&quot;3&quot;&quot;&gt;&lt;B&gt;RESU LTADOS&lt;/B&gt;&lt;/TD&gt;&quot;)
CuantosRegistros=0
do while not rs.EOF and CuantosRegistros &lt; TamPagina
'Pinto una línea de la tabla por cada registro
Response.Write(&quot;&lt;TR&gt;&quot;&amp;VbCrLf)
Response.Write(&quot;&lt;TD&gt;&quot;&amp;rs.Field s(&quot;Id&quot;)&amp;&quot;&lt;/TD&gt;&quot;)
Response.Write(&quot;&lt;TD&gt;&quot;&amp;rs.Field s(&quot;Nombre&quot;)&amp;&quot;&lt;/TD&gt;&quot;)
Response.Write(&quot;&lt;TD&gt;&quot;&amp;rs.Field s(&quot;Ventas&quot;)&amp;&quot;&lt;/TD&gt;&quot;)
Response.Write(&quot;&lt;/TR&gt;&quot;)
CuantosRegistros=CuantosRegistros+1
rs.MoveNext
loop
Response.Write(&quot;&lt;/TABLE&gt;&quot;)

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

'Muestro los enlaces
Response.Write(&quot;&lt;hr&gt;&quot;)
if PaginaActual &gt; 1 then
Response.Write(&quot;&lt;A HREF=rspagina.asp?pagina=&quot;&amp; PaginaActual-1&amp; &quot;&gt;10 Anteriores&lt;/A&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;)
end if
if PaginaActual &lt; PaginasTotales then
Response.Write(&quot;&lt;A HREF=rspagina.asp?pagina=&quot; &amp; PaginaActual+1 &amp;&quot;&gt;10 Siguientes&lt;/A&gt;&quot;)
end if


%&gt;

SaLuDoS dE:
PePeLuChO dEl PeRú PaRa El MuNdO ;)
  #5 (permalink)  
Antiguo 21/05/2002, 09:30
 
Fecha de Ingreso: mayo-2002
Mensajes: 18
Antigüedad: 22 años
Puntos: 0
Re: Paginar buscador

GRacias por contestar voy a seguir sus consejos y haber que tal me sale. :)
  #6 (permalink)  
Antiguo 23/05/2002, 14:04
f
 
Fecha de Ingreso: abril-2001
Mensajes: 16
Antigüedad: 23 años, 1 mes
Puntos: 0
Re: Paginar buscador

tengo un problema con el codigo que sugirieron...

por que siempre el resultado de la propiedad AbsolutePage me devuelve -1??

aunque ponga:
rs.AbsolutePage = NumPag

no cambia, siempre tiene el valor -1
(rs.AbsolutePage = -1)

alguien puede ayudarme...gracias.
  #7 (permalink)  
Antiguo 28/01/2003, 18:39
 
Fecha de Ingreso: enero-2003
Ubicación: El Burgo de Osma
Mensajes: 17
Antigüedad: 21 años, 5 meses
Puntos: 0
Yo tenía el mismo problema

Yo tenía el mismo problema con el mismo código, que es de www.aspfacil.com, y lo he solucionado poniendo antes de la apertura del objeto rs las siguientes lineas:
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Pagesize=TamPagina
rs.CacheSize=TamPagina
rs.CursorLocation = 3 '''Creo que sobre todo esta es importante
rs.CacheSize=6

'Ejecuto la consulta

objrs.Open sql, Conexion, 1, 2


A mi me ha funcionado pq he usado el mismo ejemplo que puso en este foro pepelucho.

Espero que te funcione!!!!!
Si sigues teniendo el mismo problema, busca en aspfacil.com el artículo de paginacion de recordset, y dentro de esta seccion, los ejemplos.
  #8 (permalink)  
Antiguo 28/01/2003, 18:41
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 5 meses
Puntos: 1


Un poco tarde la respuesta no?
  #9 (permalink)  
Antiguo 28/01/2003, 18:53
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años, 1 mes
Puntos: 7
Mas vale tarde que nunca?
  #10 (permalink)  
Antiguo 28/01/2003, 20:16
 
Fecha de Ingreso: diciembre-2002
Mensajes: 100
Antigüedad: 21 años, 6 meses
Puntos: 1
de seguro te gustaria páginar de esta forma...

<< 12345678910 >>

Bueno Aqui esta el codigo.....

<html>
<head>
<title>Repaginador de resultados</title>
</head>
<%
sSQL="select lo que tu quieras"
'esta sentencia SQL puede ser creada a partir de un buscador como el que hemos visto en otro reportaje
'y almacenada en una session para emplearla sucesivas veces en el script: session("ssql")=ssql

'actualizamos numero de pagina
If Request.QueryString("pag")<>"" Then
Session("pagina")=Request.QueryString("pag")
Else
Session("pagina")=1
End If

'constantes ADO VBScript
Const adCmdText = &H0001
Const adOpenStatic = 3

Set Conn = Server.CreateObject("ADODB.Connection")
Set Command = Server.CreateObject("ADODB.Command")
Set RS =Server.CreateObject("ADODB.RecordSet")
Conn.Open "nombre de tu base de datos"
RS.Open sSQL,Conn,adopenstatic,adcmdtext

'resultados por pagina a elegir arbitrariamente
num_registros = 5

'Dimensionamos las paginas y determinamos la pagina actual
RS.PageSize=num_registros
RS.AbsolutePage=Session("pagina")
%>

<body>
<div align="center">
Número de página actual: <b><%=Session("pagina")%></b>
<br>
Número de páginas total: <b><%=RS.PageCount%></b>
<br>
Número de registros por página: <b><%=RS.PageSize%></b>
<br>
Número de registros seleccionados: <b><%=RS.RecordCount%></b>
</div>
<br><br>

<table cellspacing="2" cellpadding="2" border="1" align="center">
<%
'Contamos el numero de campos
num_campos=RS.Fields.Count
For campo=0 to num_campos-1%>
<td align="center"><%=RS(campo).Name%></td>
<%
Next
registros_mostrados = 0
While (Not RS.eof And registros_mostrados < num_registros)
registros_mostrados = registros_mostrados +1
%>
<tr>
<%For campo=0 to num_campos-1 %>
<td align="center"><%=RS(campo)%></td>
<%Next%>
</tr>
<%
RS.MoveNext
Wend
%>
<tr>
<td colspan="<%=num_campos%>" align="center">
<%
i=0
While i<RS.PageCount
i=i+1
%>
<b><a href="paginar.asp?pag=<%=i%>"><%=i%></a></b>
<%
Wend
%>
</td>
</tr>
</table>
<%
RS.Close
Conn.Close
%>
</body>
</html>

Espero que te resulte..
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 23:19.