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

Un repeat region que empiece en la referencia 6

Estas en el tema de Un repeat region que empiece en la referencia 6 en el foro de ASP Clásico en Foros del Web. hola, tengo una pàgina en la que se ven las diferentes noticias recogidas de una DB. Mi idea es que se vean las últimas 5 ...
  #1 (permalink)  
Antiguo 15/05/2008, 05:29
 
Fecha de Ingreso: septiembre-2005
Mensajes: 202
Antigüedad: 18 años, 7 meses
Puntos: 0
Un repeat region que empiece en la referencia 6

hola,
tengo una pàgina en la que se ven las diferentes noticias recogidas de una DB. Mi idea es que se vean las últimas 5 de una forma más completa, con titular, entradilla, foto y un poco del texto.

luego quiero poner un apartado que seria "ver + notícias" en el que se listarian los titulares de las últimas 20 noticias. La idea es que estos titulares empiecen a mostrar a partir de la noticia 6 (las 5 últimas ya se ven más completas).

para ello, hago 2 recorset diferentes y a cada uno le aplico un repeat region...

hasta aqui bien...

lo que necesito es saber como hacer el repeat de la segunda region, (que seria ver 20 ultimas noticias - las últimas 5)

os adjunto el código del repeat:

<%
Dim Repeat3__numRows
Dim Repeat3__index

Repeat3__numRows = 20
Repeat3__index = 0
news2_numRows = news2_numRows + Repeat3__numRows
%>

y en el body:

<%
While ((Repeat3__numRows <> 0) AND (NOT news2.EOF))
%>
<p><%=(news2.Fields.Item("tit").Value)%></a><br />
</p>
<%
Repeat3__index=Repeat3__index+1
Repeat3__numRows=Repeat3__numRows-1
news2.MoveNext()
Wend
%>


o quizás deberia descontar los 5 ultimos registros ya directamente en el recordset?

"SELECT * FROM news WHERE tipo = ? AND activo = ? ORDER BY fecha DESC"

Última edición por potenkin; 15/05/2008 a las 05:43
  #2 (permalink)  
Antiguo 16/05/2008, 10:11
Avatar de Constantine  
Fecha de Ingreso: mayo-2007
Ubicación: Monterrey, N.L. Mexico
Mensajes: 41
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: Un repeat region que empiece en la referencia 6

No entiendo muy bien lo que necesitas, pero por lo que entendi, en el primer apartado muestras los primeros 5 registros de una consulta, en el segundo apartado quieres mostrar a partir del registro 6 en adelante, eso es lo que entendi, y para eso se puede hacer de varias maneras:

1. Utilizando tu codigo te voy a agregar unas cuantas lineas:

<%
Dim Repeat3__numRows
Dim Repeat3__index

Repeat3__numRows = 20 ' Con esto estas diciendo que quieres mostrar en total 20 Registros, es correcto ?
Repeat3__index = 0
news2_numRows = news2_numRows + Repeat3__numRows
%>

y en el body:

<%
While ((Repeat3__numRows <> 0) AND (NOT news2.EOF))
%>
<p><%If (Repeat3__index >= 6) Then ' Con este If lograras que no imprima ningun registro hasta que llegue al registro 6 de tu Recordset
Response.Write(news2.Fields.Item("tit").Value)
End If%></a><br />
</p>
<%
Repeat3__index=Repeat3__index+1
Repeat3__numRows=Repeat3__numRows-1
news2.MoveNext()
Wend
%>


2. Otra manera es vaciando todo tu Recordset a una Matriz con getRows y ahi puedes manipular mas facilmente toda tu respuesta, si lo otro no te funciona y te interesa hacerlo asi te puedo decir como.
  #3 (permalink)  
Antiguo 19/05/2008, 02:46
 
Fecha de Ingreso: septiembre-2005
Mensajes: 202
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Un repeat region que empiece en la referencia 6

hola Constantine,
gracias por contestar, con el código que me pasas no funciona, es posible que sea porque no puse el enlace que lleva el recordset, que seria de la siguiente forma:

<%
While ((Repeat3__numRows <> 0) AND (NOT news2.EOF)) %>
<p> <a href="noticies2.asp?idnews=<%=(news2.Fields.Item(" idnews").Value)%>"><%(news2.Fields.Item("tit").Val ue)%></a><br />
</p>
<%
Repeat3__index=Repeat3__index+1
Repeat3__numRows=Repeat3__numRows-1
news2.MoveNext()
Wend
%>
  #4 (permalink)  
Antiguo 19/05/2008, 10:29
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: Un repeat region que empiece en la referencia 6

Sería de mucha utilidad que cuando algo no funcione, pusieras el por qué dices que no funciona (no hace lo que se supone debería, marca error, etc)

En este caso, sin ver el resto del código, supongo que marca error, y supongo que es por esto:

Cita:
<%=news2.Fields.Item("tit").Val ue%>
  #5 (permalink)  
Antiguo 19/05/2008, 11:59
Avatar de Constantine  
Fecha de Ingreso: mayo-2007
Ubicación: Monterrey, N.L. Mexico
Mensajes: 41
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: Un repeat region que empiece en la referencia 6

Sip, tiene razon Myakire, podria ser por eso, y tambien si especificas que es lo que no funciona o que es el error que te marca serviria de mucho, asi podrian ser muchas cosas las causas de error y no te podemos ayudar bien.
  #6 (permalink)  
Antiguo 20/05/2008, 02:56
 
Fecha de Ingreso: septiembre-2005
Mensajes: 202
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Un repeat region que empiece en la referencia 6

ok, ok, pues si que funciona...

lo que pasa es que me muestra el repeat region a partir del numero que le especifico (correcto), pero (siempre hay un pero...) me deja un espacio en blanco donde deberian estar las referencias que no muestra.

Es decir, si le digo

<%
While ((Repeat3__numRows <> 0) AND (NOT news2.EOF))
%>
<a href="noticies2.asp?idnews=<%=(news2.Fields.Item(" idnews").Value)%>"> <%If (Repeat3__index >= 2) Then
Response.Write(news2.Fields.Item("tit_cat").Value)
End If%></a><br />
<br />
<%
Repeat3__index=Repeat3__index+1
Repeat3__numRows=Repeat3__numRows-1
news2.MoveNext()
Wend
%>

empieza a mostrar a partir de la 3a referencia, pero encima guarda un espacio en blanco (que es el que ocuparian la primera y la segunda referencia (que no muestra)...
  #7 (permalink)  
Antiguo 20/05/2008, 07:12
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: Un repeat region que empiece en la referencia 6

Es extremadamente lógico el asunto, solo debes hacer una prueba de escritorio para encontrar el fallo; anda, que no te tardas más de 1 minuto en encontrar el por que de esos saltos, van unas birras de apuesta
  #8 (permalink)  
Antiguo 20/05/2008, 09:53
Avatar de Constantine  
Fecha de Ingreso: mayo-2007
Ubicación: Monterrey, N.L. Mexico
Mensajes: 41
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: Un repeat region que empiece en la referencia 6

Pues esta mas claro que el agua, solo con ver tu codigo.
En tu If le dices que empiece a mostrar a partir del registro 2 (>=2) pero tienes afuera del If las Etiquetas <br>, cuando tu While entra a su bucle las imprime independientemente de si va a mostrar o no un registro porque estan afuera del If, no se si me explico ? ? ? y pues a la segunda que entra el While como ya se cumple la condicion del If pues ya lo imprime bien.

Prueba con esto:

Mete las etiquetas <a href=""></a> y <br> adentro del If, para que solo las imprima cuando va a imprimir un registro en tu html. Ejem:

<%
While (.........) 'Queda igual a como esta
If(Condicion >=2) Then
%>
<a href=""><%=news2.Fields.Item("TUCAMPO").Value%></a><br>
<%
End If
Wend
%>

Si esto no te funciona prubea con la prueba de escritorio que dice Myakire
  #9 (permalink)  
Antiguo 20/05/2008, 10:58
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: Un repeat region que empiece en la referencia 6

Casi, casi, le hiciste tu la prueba de escritorio Constantine , bueno, esperemos que potenkin revise sus códigos por él mismo cuando sean detalles como estos, para así adquirir la experiencia y habilidad que se necesita para programar.

Saludos
  #10 (permalink)  
Antiguo 21/05/2008, 08:30
 
Fecha de Ingreso: septiembre-2005
Mensajes: 202
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Un repeat region que empiece en la referencia 6

pues me temo que no lo sé hacer, por eso pregunto...
  #11 (permalink)  
Antiguo 21/05/2008, 09:09
 
Fecha de Ingreso: septiembre-2005
Mensajes: 135
Antigüedad: 18 años, 7 meses
Puntos: 1
Respuesta: Un repeat region que empiece en la referencia 6

Myakire, a las pruebas de escritorio yo mas bien las llamo comprobación de que no la estoy cagando por algún lado XDD (no es ningún ataque a potenkin por si acaso lo parece ;) )
  #12 (permalink)  
Antiguo 21/05/2008, 10:24
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: Un repeat region que empiece en la referencia 6

, bueno, no importa como las llames (por eso puse el link), pero de que es una herramienta básica y fundamental que cualquier programador hace y deber hacer (mentalmente o en pepel dependiendo de tu experiencia), eso es innegable
Cita:
pues me temo que no lo sé hacer, por eso pregunto...
Preguntar esta bien, pero es mejor si preguntas después de intentar comprender el fallo, para eso son las pruebas de escritorio o las comprobaciones de que si no....., bueno, así como las llama Lebennin
  #13 (permalink)  
Antiguo 23/05/2008, 02:56
 
Fecha de Ingreso: septiembre-2005
Mensajes: 202
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Un repeat region que empiece en la referencia 6

hola,
para quien le pueda interesar, al final lo he solucionado de la siguiente manera:


<%
While ((Repeat3__numRows <> 0) AND (NOT news2.EOF))
%>
<%If (Repeat3__index >= 3) Then
Response.Write ("<img src='../img/top2.gif' width='8' height='7' /><a href='noticies2.asp?idnews=" & (news2.Fields.Item("idnews").Value) & "'> " & news2.Fields.Item("tit_cat").Value & "</a><br /><br />")
End If%>

<%
Repeat3__index=Repeat3__index+1
Repeat3__numRows=Repeat3__numRows-1
news2.MoveNext()
Wend
%>

el problema estaba en las comillas y en los recorsets dentro del response.write que me daban error

salut
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 13:58.