Foros del Web » Programando para Internet » ASP Clásico »

Paginar una tabla por registros y alternar el color de filas del recordset

Estas en el tema de Paginar una tabla por registros y alternar el color de filas del recordset en el foro de ASP Clásico en Foros del Web. Hola amigos, podria alguien indicarme como paginar una tabla por registros y que a su vez pueda alternar el color de filas del recordset. Gracias ...
  #1 (permalink)  
Antiguo 06/08/2003, 05:50
 
Fecha de Ingreso: enero-2003
Mensajes: 73
Antigüedad: 22 años, 3 meses
Puntos: 0
Paginar una tabla por registros y alternar el color de filas del recordset

Hola amigos, podria alguien indicarme como paginar una tabla por registros y que a su vez pueda alternar el color de filas del recordset.

Gracias de antemano.
José Manuel
  #2 (permalink)  
Antiguo 06/08/2003, 06:19
Avatar de nazkatuta  
Fecha de Ingreso: julio-2002
Ubicación: EH - BCN
Mensajes: 222
Antigüedad: 22 años, 9 meses
Puntos: 0
te pongo un ejemplo... para mostrar registros de 10 en 10 yy cambiar el color alternativamente...
para cambiar de pagina hay que pasarle un valor a por el querystring a "pag".

StrSQL = "SELECT id, nombre, apellidos, fecha,info FROM contactos_web order by fecha desc"


RS.Open strSQL, Conexion, 1 ,2

if request.querystring("pag") <> "" then
intCurrentPage = request.querystring("pag")
else
intCurrentPage = 1
end if
arrelementos = RS.GetRows 'Carga el array y cierra el RecordSet
intTotalRecords = RS.RecordCount
RS.Close
Set RS = Nothing
Conexion.Close
set Conexion = Nothing

intPageSize = 10 ' 10 registros por página
intStart = ((intCurrentPage - 1) * intPageSize)
intEnd = intStart + intPageSize - 1


intCurrentRecord = intStart

<%
Do
id = arrelementos(0, intCurrentRecord)
nombre = trim(arrelementos(1, intCurrentRecord))
apellidos = trim(arrelementos(2, intCurrentRecord))
fecha = arrelementos(3, intCurrentRecord)
info = arrelementos(4, intCurrentRecord)


if i mod 2 = 0 then
color = "#006633"
else
color = "#FF0000"
end if


%>
<font color="#<%=color%>"AQUI MUESTRA CADA REGISTRO </font>

<% i = i +1
intCurrentRecord = intCurrentRecord + 1
If intCurrentRecord >= intTotalRecords Then Exit Do
Loop While intCurrentRecord <= intEnd
%>



espero que te sirva.
__________________
Cita:
Gaur ere nahi nuke...
zure ondoan esnatu
  #3 (permalink)  
Antiguo 06/08/2003, 07:08
 
Fecha de Ingreso: enero-2003
Mensajes: 73
Antigüedad: 22 años, 3 meses
Puntos: 0
Si efectivamente el paginar el listado lo tengo claro y funciona correctamente, pero el problema lo tengo a la hora de alternar los colores, no doy con ello aqui te muestro el código paginando los registros de 20 en 20
<%Option Explicit%>
<%
Dim mostrar 'numero de registros por página
Dim cant_paginas 'numero 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 ' cantidad de registros por página


If Request.QueryString("page") = "" Then
pagina_actual = 1
Else
pagina_actual = CInt(Request.QueryString("page"))
End If

strsql = "SELECT * FROM musica"

' Creamos la conexion a la base de datos
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/directorio/musica.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...
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">Page <B><%= pagina_actual %></B> of <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...
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

' Creamos 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="./registro.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="./registro.asp?eje=30&page=<%= I %>"><%= I %></a>
<%
End If
Next 'I

If pagina_actual < cant_paginas Then
%>
<a href="./registro.asp?eje=30&page=<%= pagina_actual + 1 %>">[Próximo >>]</a>
<%
End If
'Fin...
%>
  #4 (permalink)  
Antiguo 06/08/2003, 09:42
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años, 3 meses
Puntos: 50
Hola... pues como dice el compañero mazkatuta... solo es cosa de agregar

if bandera mod 2 = 0 then
color = "#006633"
else
color = "#FF0000"
end if


y colocarlo ya sea en tu texto o en tu <td> .. mira.. te podría quedar de ésta forma:


' Creamos el bucle mostrando los datos del registro
registro_mostrado = 0
bandera = 0
Do While registro_mostrado < mostrar And Not RS.EOF
Response.Write vbTab & "<TR>" & vbCrLf
For I = 0 To RS.Fields.Count - 1

if bandera mod 2 = 0 then
color = "#006633"
else
color = "#FF0000"
end if

Response.Write vbTab & vbTab & "<TD bgcolor='" & color & "'>"
Response.Write RS.Fields(I)
Response.Write "</TD>" & vbCrLf
bandera = bandera + 1
Next 'I
Response.Write vbTab & "</TR>" & vbCrLf




Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #5 (permalink)  
Antiguo 06/08/2003, 11:20
 
Fecha de Ingreso: enero-2003
Mensajes: 73
Antigüedad: 22 años, 3 meses
Puntos: 0
Gracias por tu ayuda compañero.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:21.