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>

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 Miguel
24/11/2006 - 01:42 | Informe spam
Mi caso es que no muestra la segunda página, se pierden los valores de las
variable que utilizo en la sentencia SQL del ejemplo que puse y no trae el
resultado para la segunda página..

"Allan" wrote in message
news:
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.
Respuesta Responder a este mensaje
#3 Dani Castillo
24/11/2006 - 08:15 | Informe spam
Hola, el problema es que al paginar vas cambiando de pagina a pagina con
enlaces y el valor de request.form se pierde (ya que solo vale para la
pagina inmediata despues de un formulario)

una solucion seria modificar todos los enlaces a paginas para que
arrastraran el valor de esas variables (periodo y asignatura) y recuperar su
valor con request (sin .form ni .querystring para que tome cualquiera de
ambas opciones)

otra opcion menos "formal" pero valida es pasar esos valores por session,
algo como

if request.form("Periodo")<>"" then
Periodo=Request.Form("Periodo")
Session("Periodo")=Periodo
else
Periodo=Session("Periodo")
end if

(y lo mismo para asignatura y resto de opciones)


_____________________
Dani
_____________________
"Miguel" escribió en el mensaje
news:
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=mipasswor
d"
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>


Respuesta Responder a este mensaje
#4 Dani Castillo
24/11/2006 - 08:17 | Informe spam
Es logico, entre paginas asp no hay "memoria" salvo lo que tu le indiques,
para almacenar esos checkbox vas a tener que programar algo, una opcion es
tener un iframe oculto (con tamaño 0 ) donde incluyes un campo hidden, por
javascript vas incluyendo en ese hidden las marcas que haces (y quitando las
que desmarcas) indicando el "id" del registro que tengas asociado (un
autonumerico)


_____________________
Dani
_____________________
"Allan" escribió en el mensaje
news:
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.
Respuesta Responder a este mensaje
#5 Miguel
24/11/2006 - 14:28 | Informe spam
Muchas gracias, voy a probarlo.
"Dani Castillo" <danicastilloarrobahotmail.com> wrote in message
news:
Hola, el problema es que al paginar vas cambiando de pagina a pagina con
enlaces y el valor de request.form se pierde (ya que solo vale para la
pagina inmediata despues de un formulario)

una solucion seria modificar todos los enlaces a paginas para que
arrastraran el valor de esas variables (periodo y asignatura) y recuperar
su
valor con request (sin .form ni .querystring para que tome cualquiera de
ambas opciones)

otra opcion menos "formal" pero valida es pasar esos valores por session,
algo como

if request.form("Periodo")<>"" then
Periodo=Request.Form("Periodo")
Session("Periodo")=Periodo
else
Periodo=Session("Periodo")
end if

(y lo mismo para asignatura y resto de opciones)


_____________________
Dani
_____________________
"Miguel" escribió en el mensaje
news:
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=mipasswor
d"
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>






Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida