Paginación ASP

23/11/2006 - 21:37 por Miguel | Informe spam
Tengo el siguiente codigo en esta página de asp que tomé de un ejemplo que
encontré en Internet en www.aspfacil.com. Consiste en que llamo esta página
desde otra pasando los valores de las variable, entonces me crea una
paginación con los resultados, el problema que presento es que la primera
página me la presenta, pero las siguientes no me dan los resultados, noté es
que los valores de las variables se pierden cuando paso a la siguiente
paginación, ¿Cómo podría solucionar esto?


Gracias

<%
' Páginas en un recordset

Dim Periodo, Asignatura
Dim oConn, rs, SQL
Dim PaginaActual ' en qu página estamos
Dim PaginasTotales ' cuantas páginas tenemos
Dim TamPagina ' cuantos registros por página
Dim CuantosRegistros ' para imprimir solo el no. de registro por
página que queramos

Periodo=Request.Form("Periodo")
Asignatura=Request.Form("Asignatura")

'MODIFICAR AQUI PARA CAMBIAR EL No. DE REGISTRO POR PAGINA
TamPagina

'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

set oConn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")

' Conexin por OLEDB
oConn.Open "DRIVER={SQL
Server};SERVER=miservidor;DATABASE=mibasededatos;UID=miusuario;PWD=mipassword"
SQL="SELECT * FROM Calificacion LEFT JOIN Estudiante ON
Calificacion.Matricula = Estudiante.Matricula LEFT JOIN Asignatura ON
Asignatura = Codigo WHERE Calificacion.Periodo = '"&Periodo&"' AND
Calificacion.Asignatura = '"&Asignatura&"' ORDER BY Periodo,
Calificacion.Matricula"
' 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 página 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"" ALIGN=""center""
STYLE=""font-size:75%"" ""BORDERCOLOR=#000000"">")
Response.Write("<CAPTION><B>RESULTADOS DE CALIFICACIONES</B></CAPTION>")
Response.Write("<TR><TD COLSPAN=""3""><B>PERIODO:
</B>"&rs.Fields("Periodo")&"</TD>")
Response.Write("<TR><TD COLSPAN=""3""><B>ASIGNATURA:
</B>"&rs.Fields("Descripcion")&"</TD>")
Response.Write("<TR><TD COLSPAN=""3"" BGCOLOR=""#475F70""
STYLE=""COLOR:#FFFFFF""><B>MATRICULA</B></TD>")
Response.Write("<TD COLSPAN=""3"" BGCOLOR=""#475F70""
STYLE=""COLOR:#FFFFFF""><B>NOMBRE</B></TD>")
Response.Write("<TD COLSPAN=""3"" BGCOLOR=""#475F70""
STYLE=""COLOR:#FFFFFF""><B>ASISTENCIA</B></TD>")
Response.Write("<TD COLSPAN=""3"" BGCOLOR=""#475F70""
STYLE=""COLOR:#FFFFFF""><B>TRABAJO PRACTICO</B></TD>")
Response.Write("<TD COLSPAN=""3"" BGCOLOR=""#475F70""
STYLE=""COLOR:#FFFFFF""><B>EXAMEN PARCIAL</B></TD>")
Response.Write("<TD COLSPAN=""3"" BGCOLOR=""#475F70""
STYLE=""COLOR:#FFFFFF""><B>EXAMEN FINAL</B></TD>")
Response.Write("<TD COLSPAN=""3"" BGCOLOR=""#475F70""
STYLE=""COLOR:#FFFFFF""><B>CALIFICACION</B></TD>")
CuantosRegistros=0
do while not rs.EOF and CuantosRegistros < TamPagina
'Pinto una lnea de la tabla por cada registro
Response.Write("<TR>"&VbCrLf)
Response.Write("<TD COLSPAN=""3"" BGCOLOR=""#CBEBDE""
STYLE=""#000000"">"&rs.Fields("Matricula")&"</TD>")
Response.Write("<TD COLSPAN=""3"" BGCOLOR=""#CBEBDE""
STYLE=""#000000"">"&rs.Fields("Nombre")&"</TD>")
Response.Write("<TD COLSPAN=""3"" BGCOLOR=""#CBEBDE""
STYLE=""#000000"">"&rs.Fields("Asistencia")&"</TD>")
Response.Write("<TD COLSPAN=""3"" BGCOLOR=""#CBEBDE""
STYLE=""#000000"">"&rs.Fields("TrabajoPractico")&"</TD>")
Response.Write("<TD COLSPAN=""3"" BGCOLOR=""#CBEBDE""
STYLE=""#000000"">"&rs.Fields("ExamenParcial")&"</TD>")
Response.Write("<TD COLSPAN=""3"" BGCOLOR=""#CBEBDE""
STYLE=""#000000"">"&rs.Fields("ExamenFinal")&"</TD>")
Response.Write("<TD COLSPAN=""3"" BGCOLOR=""#CBEBDE""
STYLE=""#000000"">"&rs.Fields("Asistencia") + rs.Fields("TrabajoPractico") +
rs.Fields("ExamenParcial") + rs.Fields("ExamenFinal")&"</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=calificacion.asp?pagina="& PaginaActual-1& ">10
Anteriores</A>&nbsp;&nbsp;&nbsp;")
end if
if PaginaActual < PaginasTotales then
Response.Write("<A HREF=calificacion.asp?pagina=" & PaginaActual+1 &">10
Siguientes</A>")
end if
%>

<a href="VOLVER.htm">
Inicio
</a>
 

Leer las respuestas

#1 Allan
23/11/2006 - 22:44 | Informe spam
Hola miguel, no se si tengo el mismo problema que tu, uso la paginacion
dinamica que proporciona dreamweaver(podria haber utilizado otra) la question
es que me pasa lo mismo , no se mantienen los valores de las paginas, me
explico: tengo un una tabla donde muestro de 10 en 10 datos de personal como
nombre y apellido y puse un checkbox para cada persona, mi sorpresa es ver
que seleccionando varios de la primera página luego paso a la segunda pagina
y regreso a la primera, las personas que había seleccionado en la primera
pagina no estan selecionadas.. si alguien nos podria ayudar se lo
agradeceriamos mucho. Saludos.

Preguntas similares