webForumDet fria alternativet

Loopa ut snyggt

ASP

10 svar · 327 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Frågan#1

Hur loopar man ut i denna slinga så varje undermeny kommer ex 2 blanksteg till höger hela tiden?

<%Sub DoTree(HuvudID, intLevel)
  Set RS = Conn.Execute("SELECT kategoriID,kategori,ukategori FROM shop_asp_kategorier WHERE ukategori = " & HuvudId)
    If Not RS.EOF Then
      Do Until RS.EOF
         strAntal=Conn.Execute("Select Count(*) From shop_asp_kategorier WHERE ukategori = " & HuvudId).Fields(0)%>
         <option value="<%=RS(0)%>" <%If RS(2) = 0 Then%>style="background-color:#eaeaea"<%End If%>><%=RS(1)%></option>
         <%DoTree rs("kategoriID"), intLevel + 1
      RS.MoveNext
      Loop
    End If
  RS.Close:Set RS=Nothing
End Sub

DoTree 0,0%>
Medlem sedan juni 20034 013 inlägg
#2

Sub PrintSpace(n)
For i = 1 to n
response.write(" ")
Next
End Sub

Sen är det bara att du anropar den där du vill ha mellanslagen, med en variabel som du ökar med 2 efter varje gång du kört.

Medlem sedan dec. 20011 860 inlägg
#3

Okej! Tackar för det!

Medlem sedan apr. 20031 660 inlägg
#4

HEJ!

Det snyggaste vore väl att använda String-funktionen för det?
http://www.devguru.com/Technologies/vbscript/quickref/string.html

Medlem sedan juni 20034 013 inlägg
#5

Ja, jag kanske borde lagt till att jag inte hållt på med Visual Basic sen 1992.

Medlem sedan maj 200010 687 inlägg
#6

Om man bara vill ha mellanslag så är väl Space funktionen vettigast.

Response.Write Space(23)
Medlem sedan apr. 20031 660 inlägg
#7

HEJ!

Erik Juhlin skrev:

Om man bara vill ha mellanslag så är väl Space funktionen vettigast.

Response.Write Space(23)

Ja, det är den!
Visste att det fanns en funktion i String för detta, men Space har jag inte behövt använda.

Fast, nu när jag tittar på
http://www.devguru.com/Technologies/vbscript/quickref/space.html
undrar jag om det löser Asas problem; mellanslagen försvinner, eftersom endast ett visas i html?

Det innebär också att String inte är mycket bättre...

Medlem sedan juni 200032 967 inlägg
#8

Ska det vara så, så...

Response.Write Replace(Space(23), " ", "&amp;nbsp;")

;)

Medlem sedan nov. 20017 144 inlägg
#9

<% =String(33, "&nbsp;") %>
Eller
<% =Replace(space(33)," ","&nbsp;" %>

Medlem sedan juni 200032 967 inlägg
#10

Jesper T skrev:

<% =String(33, "&nbsp;") %>

Fungerar inte. String tar ett tecken som argument, vilket innebär att koden skriver ut 33 stycken &.

mvh

Medlem sedan apr. 20031 660 inlägg
#11

HEJ!

Jesper T skrev:

<% =String(33, "&nbsp;") %>

Kommer inte att fungera, eftersom jag tänkte på samma sak, för att korta koden lite till!

Du kommer att få 33 &-tecken, vilket verkar konstigt, tills man läser meningen "The Character argument is a single character."

http://www.devguru.com/Technologies/vbscript/quickref/string.html

245 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)