Que tal estimado experto(Jordivu), como le hago para paginar datos que tengo en una tabla de access mostrados con asp, estos mismos los filtro, pero deseo paginarlos de 20 en 20 De antemano te doy las gracias Desde Mexico City Armin Canto
3 Respuestas
Respuesta de greeham
1
1
greeham, Diseñador y Programador Web Técnico Informático
Sería un poco complicado explicarte todo el proceso de paginación desde aquí. Básicamente se trata de calcular el numero total de registros de la consulta, comprobar la variable de página actual que se pasa por parámetro y filtrar la consulta para que devuelva únicamente el número de registros máximo por página. Te pongo un enlace que está muy bien explicado. http://www.desarrolloweb.com/articulos/294.php?manual=11 Suerte y Saludos.
Si trabajas con Dreamweaver, esta funcionalidad ya te la hace sola, incluso te genera las páginas siguientes y un menú de navegación de registros. Si no dispones de DW, puedes seguir estas instrucciones: http://www.desarrolloweb.com/articulos/294.php No olvides cerrar la pregunta para que otros me puedan preguntar!.
Aquí te mando un código de ejemplo para que lo modifiques a tu criterio Saludos, RED2 <% Dim mostrar 'cantidad de registros a mostrar por página Dim cant_paginas 'cantidad de páginas que recibimos Dim pagina_actual 'La página que mostramos Dim registro_mostrado 'Contador utilizado para mostrar las páginas Dim I 'Variable Loop Mostrar = 20 ' Pueden modificar este número para cambiar la cantidad de registros por página ' IF para saber que página mostrar If Request.QueryString("page") = "" Then pagina_actual = 1 Else pagina_actual = CInt(Request.QueryString("page")) End If strsql = "SELECT * FROM Tabla1" ' Creamos la conexion a la base de datos Set oConn = Server.CreateObject("ADODB.Connection") oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("nombre.mdb") ' Creamos el RecordSet y definimos la cantidad de registros a mostrar Set RS = Server.CreateObject("ADODB.Recordset") RS.PageSize = mostrar RS.CacheSize = mostrar ' Abrimos la tabla... RS.Open strSQL, oConn,3,1 'contamos las páginas que se formaron con la variable mostrar. cant_paginas = RS.PageCount ' Si el pedido de página cae afuera del rango, ' lo modificamos para que caiga adentro If pagina_actual > cant_paginas Then pagina_actual = cant_paginas If pagina_actual < 1 Then pagina_actual = 1 ' Si la cantidad de páginas da 0 es que no hay registros... por eso este IF If cant_paginas = 0 Then Response.Write "No hay registros..." Else ' Nos movemos a la página elegida RS.AbsolutePage = pagina_actual ' Mostramos el dato de que página estamos... %> <FONT SIZE="+1">Página <B><%= pagina_actual %></B> de <B><%= cant_paginas %></B></FONT> <% ' Espacios Response.Write "<BR><BR>" & vbCrLf 'iniciamos la tabla donde mostraremos todo Response.Write "<TABLE BORDER=""1"">" & vbCrLf ' Mostramos los titulos de las columnas... (pueden sacar ese FOR para eliminar eso) Response.Write vbTab & "<TR>" & vbCrLf For I = 0 To RS.Fields.Count - 1 Response.Write vbTab & vbTab & "<TD><B>" Response.Write RS.Fields(I).Name Response.Write "<B></TD>" & vbCrLf Next 'I Response.Write vbTab & "</TR>" & vbCrLf ' Hacemos el bucle mostrando los datos del registro registro_mostrado = 0 Do While registro_mostrado < mostrar And Not RS.EOF Response.Write vbTab & "<TR>" & vbCrLf For I = 0 To RS.Fields.Count - 1 Response.Write vbTab & vbTab & "<TD>" Response.Write RS.Fields(I) Response.Write "</TD>" & vbCrLf Next 'I Response.Write vbTab & "</TR>" & vbCrLf ' Sumamos 1 a los mostrados registro_mostrado = registro_mostrado + 1 ' Nos movemos al próximo registro... RS.MoveNext Loop 'listo... Response.Write "</TABLE>" & vbCrLf End If ' Cerramos y limpiamos... RS.Close Set RS = Nothing oConn.Close Set oConn = Nothing ' Ahora mostramos los enlaces a las otras páginas con el resto de los registros... If pagina_actual > 1 Then %> <a href="./paginar.asp?eje=30&page=<%= pagina_actual - 1 %>">[<< Anterior]</a> <% End If ' mostramos la paginacion por numeros de página For I = 1 To cant_paginas If I = pagina_actual Then %> <%= I %> <% Else %> <a href="./paginar.asp?eje=30&page=<%= I %>"><%= I %></a> <% End If Next 'I If pagina_actual < cant_paginas Then %> <a href="./paginar.asp?eje=30&page=<%= pagina_actual + 1 %>">[Próximo >>]</a> <% End If 'Fin... %>