Gracias por su ayuda

| |||
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 ![]() |
| |||
Re: Paginar buscador Aca te mando un ejemplo recontra util: ------------------------------------- <% ' 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("pagina")="&quo t; then PaginaActual=1 else PaginaActual=CInt(Request.Querystring("pagina ")) end if set oConn=Server.CreateObject("ADODB.Connection&q uot;) set rs=Server.CreateObject("ADODB.Recordset" ) ' Conexión por OLEDB oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("ejemplo.mdb ")&";" SQL="SELECT Id, Nombre, Ventas FROM Ventas;" ' 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 SaLuDoS dE: PePeLuChO dEl PeRú PaRa El MuNdO ;) |
| |||
Re: Paginar buscador '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"" ALIGN=""center"" STYLE=""font-size:75%"">") Response.Write("<TR><TD COLSPAN=""3""><B>RESU LTADOS</B></TD>") 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>"&rs.Field s("Id")&"</TD>") Response.Write("<TD>"&rs.Field s("Nombre")&"</TD>") Response.Write("<TD>"&rs.Field s("Ventas")&"</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=rspagina.asp?pagina="& PaginaActual-1& ">10 Anteriores</A>&nbsp;&nbsp;&nbsp;") end if if PaginaActual < PaginasTotales then Response.Write("<A HREF=rspagina.asp?pagina=" & PaginaActual+1 &">10 Siguientes</A>") end if %> SaLuDoS dE: PePeLuChO dEl PeRú PaRa El MuNdO ;) |
| |||
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. |
| |||
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. ![]() |
| |||
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.. |