Código HTML:
Ver original
<% 'Parámetros: 'Sentencia: Sentencia SQL con la que generar el Recordset 'Pagina_Solicitada: Página del recordset solicitada para mostrar 'Mostrar: número de registros por página ' 'La función crea el Recordset solicitado y devuelve un array: ' Posición 0 : Páginas totales resultantes ' Posición 1 : Página en la que se posiciona, esta puede diferir de la ' solicitada, es decir, si se solicita la página 32 del recordset ' y sólo hay 28 páginas, el valor será 28. ' Function CrearRs_paginado (Sentencia, Pagina_Solicitada, Mostrar) Dim Devuelve(1) if Pagina_Solicitada = "" then Pagina_Solicitada = 1 Else Pagina_Solicitada=cint(Pagina_Solicitada) End if if Mostrar = "" then Mostrar = 5 Else Mostrar = Cint(Mostrar) End if Set rs=server.createobject("adodb.recordset") Rs.pagesize = Mostrar Rs.cachesize = Mostrar Rs.open Sentencia,conn,3,1 cant_paginas=rs.pagecount If Pagina_Solicitada > cant_paginas then Pagina_Solicitada = cant_paginas end if if Pagina_Solicitada <1 then Pagina_Solicitada = 1 end if If cant_paginas = 0 Then CrearRs_paginado = 0 'Cantidad de páginas Devuelve(0) = 0 'Página Solicitada Devuelve(1) = 0 CrearRs_paginado = Devuelve Else Rs.absolutepage = Pagina_Solicitada Devuelve(0) = rs.pagecount Devuelve(1) = Pagina_Solicitada CrearRs_paginado = Devuelve End If End Function %> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link href="Estilo.css" rel="stylesheet" type="text/css" /> </head> <body> <% Dim Pags_NumPag(1) Pags_NumPag() = CrearRs_Paginado("Select * From Boletines_Subcr", 523, 10) For I=1 To 10 If Rs.Eof Then Exit For %> <% Rs.MoveNext Next Response.Write Pags_NumPag(0) &"<br/>" Response.Write Pags_NumPag(1) CerrarRs %> </body> </html>
A la función se le pasa la consulta, la página en la que te quieres posicionar y los registros a mostrar por página.
Me tiene que devolver dos valores para poder crear el pie de paginación que son las páginas totales y en número de página en el que se posiciona.
Y por esto último es por lo que necesito el array, porque le puedo pedir la página 100, pero si sólo hay 95 debe devolver 95
De esta manera aunque yo le dé a siguiente repetidamente, el pie quedará así:
Página 25 de 25 | Anterior Siguiente
De momento tan sólo me muestra los resultados. O lo intento, porque me da este error:
Microsoft VBScript runtime error '800a0009'
Subscript out of range
/prueba.asp, line 102
Esta es la línea 102:
Código ASP:
Ver original
Pags_NumPag() = CrearRs_Paginado("Select * From Boletines_Subcr", 523, 10)