Toon posts:

[ASP vbScript] While...MoveNext moet één regel HTML maken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Heb een stukje code die ervoor zorgt dat mijn menubalk wordt aangemaakt:

code:
1
2
3
4
5
6
7
8
  <% While ((Repeat1__numRows <> 0) AND (NOT rsMenu.EOF))  %> 
  <a href="<%=TRIM(rsMenu.Fields.Item("link").Value)%>">&nbsp;&nbsp;<%=TRIM(rsMenu.Fields.Item("titel").Value)%>&nbsp;&nbsp;</a>|
  <%   
  Repeat1__index=Repeat1__index+1   
  Repeat1__numRows=Repeat1__numRows-1   
  rsMenu.MoveNext()
Wend
%>


Maar in de browser plaatst hij iedere herhaling op een nieuwe regel inclusief een witregel en daardoor is mijn opmaak niet correct. Ik wil graag dat de repeater de hele code op één regel zet zodat mijn opmaak (met CSS enzo) goed uit de verf komt.

Wat de code genereerd is:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
  <a href="PageId">&nbsp;&nbsp;Eerste&nbsp;&nbsp;</a>|
   
  <a href="1">&nbsp;&nbsp;Tweede&nbsp;&nbsp;</a>|
   
  <a href="1">&nbsp;&nbsp;Derde&nbsp;&nbsp;</a>|
   
  <a href="PageId">&nbsp;&nbsp;Vierde&nbsp;&nbsp;</a>|
   
  <a href="PageId">&nbsp;&nbsp;Vijfde&nbsp;&nbsp;</a>|
   
  <a href="PageId">&nbsp;&nbsp;Zesde&nbsp;&nbsp;</a>|
   
  <a href="PageId">&nbsp;&nbsp;Zevende&nbsp;&nbsp;</a>|


En dit moet worden:
code:
1
<a href="PageId">&nbsp;&nbsp;Eerste&nbsp;&nbsp;</a>|<a href="1">&nbsp;&nbsp;Tweede&nbsp;&nbsp;</a>|<a href="1">&nbsp;&nbsp;Derde&nbsp;&nbsp;</a>|

  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 01-04 20:36

Not Pingu

Dumbass ex machina

Er zitten nou eenmaal twee linebreaks in je code. Maar linebreaks worden genegeerd door de HTML parser van elke browser, dus ik zou niet weten waarom er dan fouten ontstaan ivm. je CSS :?

Alternatief: declareer een string en append je HTML daaraan ipv. het rechtstreeks neer te schrijven. Na de loop schrijf je dan de string weg.
edit:
of natuurlijk gewoon je codeblokken op 1 regel zetten, dat kan best maar overzichtelijker wordt het er niet op

[ Voor 16% gewijzigd door Not Pingu op 01-07-2005 10:08 ]

Certified smart block developer op de agile darkchain stack. PM voor info.


  • party42
  • Registratie: Oktober 2000
  • Laatst online: 13:14
code:
1
2
3
4
5
6
7
8
9
10
<% 
While ((Repeat1__numRows <> 0) AND (NOT rsMenu.EOF))  
  s = s & "  <a href='" & TRIM(rsMenu.Fields.Item("link").Value) & "'>&nbsp;&nbsp;" & TRIM(rsMenu.Fields.Item("titel").Value) & "&nbsp;&nbsp;</a>|"
  Repeat1__index=Repeat1__index+1   
  Repeat1__numRows=Repeat1__numRows-1   
  rsMenu.MoveNext()
Wend

Response.Write(s)
%>


zoals Gunp01nt ook al zei dus... :)

Everyday's an endless stream, of cigarettes and magazines...


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 04-05 14:55

Janoz

Moderator Devschuur®

!litemod

code:
1
2
3
4
5
6
7
  <% While ((Repeat1__numRows <> 0) AND (NOT rsMenu.EOF))  
%><a href="<%=TRIM(rsMenu.Fields.Item("link").Value)%>">  <%=TRIM(rsMenu.Fields.Item("titel").Value)%>  </a>|<%   
  Repeat1__index=Repeat1__index+1   
  Repeat1__numRows=Repeat1__numRows-1   
  rsMenu.MoveNext()
Wend
%>


gewoon een beetje creatief heen en weer schuiven van open en sluit tags

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Gunp01nt schreef op vrijdag 01 juli 2005 @ 10:07:
Er zitten nou eenmaal twee linebreaks in je code. Maar linebreaks worden genegeerd door de HTML parser van elke browser, dus ik zou niet weten waarom er dan fouten ontstaan ivm. je CSS :?

Alternatief: declareer een string en append je HTML daaraan ipv. het rechtstreeks neer te schrijven. Na de loop schrijf je dan de string weg.
edit:
of natuurlijk gewoon je codeblokken op 1 regel zetten, dat kan best maar overzichtelijker wordt het er niet op
Werkt nu inderdaad wel goed! De linebreaks worden inderdaad gegenereerd door ASP en 'ingelezen' door de browser maar vond het toch vreemd... heb nu een variabele die wordt aangevuld en die het geheel daarna wegschrijft.

En alles in één codeblock lees niet lekker!