webForumDet fria alternativet

Färga varannan rad, fast egentligen var tredje!

ASP

9 svar · 430 visningar · startad av magnusfernstrom

Medlem sedan mars 20033 686 inlägg
Frågan#1

Hej håw!

Jag har denna kod, för att färga varannan rad:


       dim color
       color = "#333333"
       function setColor ()
       if color = "#333333" then
       color = "#111111"
       else
       color = "#333333"
       end if
       setColor = color
       end function

Nu är det så att jag har tre tabeller, och om jag sätter setColor så blir det ju varannan färg i dom.

Jag suger på att förklara. Så jag länkar:
http://midgetzinc.net.loopiadns.com/f/forum_start.asp?cat=2

Kan man göra så att var setColor bar tredje gång blir #111111 och var tredje gång blir #333333?

Medlem sedan dec. 20003 563 inlägg
#2
function setColor(bgCol)
  select case bgCol
    case "#333"
      setColor = ""
    case "#111"
      setColor = "#333"
    case else
      setColor = "#111"
  end select
end function
Medlem sedan mars 20033 686 inlägg
#3

Microsoft VBScript runtime error '800a01c2'

Wrong number of arguments or invalid property assignment: 'setColor'

/f/forum_start.asp, line 278

Medlem sedan maj 200010 687 inlägg
#4

Snyggare och effektivare kod:

Dim vColor, i
vColor = Array("#333333", "#111111", "")
i = 0

While Not rs.EOF
	%>
	<tr style="background-color: <%=vColor(i Mod 3)%>;">
		<td>...</td>
	</tr><%
	rs.MoveNext
	i = i + 1
Wend

Ännu snyggare skulle ju vara om man använde klasser istället för färger och sen stryde färgerna i CSS-filen.

Redigering: Fixade till felet. :)

Medlem sedan mars 20033 686 inlägg
#5

Det fungerar inte. Det står "& vColor(i Mod 3) &" i bgcolor nu.

Medlem sedan juni 200032 967 inlägg
#6

Då får du se till att själv korrigera Erik Juhlins miss. :)

<tr style="background-color: <%= vColor(i Mod 3) %>;">
Medlem sedan mars 20033 686 inlägg
#7

Nu löste det sig, på sätt och vis.

Se resultatet själva:
http://midgetzinc.net.loopiadns.com/f/forum_start.asp?cat=2

Medlem sedan jan. 2000978 inlägg
#8

<tr style="background-color:<%=vColor(i Mod 3)%>;">

Medlem sedan dec. 1999707 inlägg
#9

Var bara ett litet fel i Eriks skript. Jag ändrade att Mod:a med rs.AbsolutePosition istället för i-variabeln.

Dim vColor
vColor = Array("#333333", "#111111", "")

Do Until rs.EOF
	%>
	<tr style="background-color: <%=vColor(rs.AbsolutePosition Mod 3)%>;">
		<td>...</td>
	</tr><%
	rs.MoveNext
Loop
Medlem sedan mars 20033 686 inlägg
#10

@nders: Dumma jag tänker inte på morgonen ;)
Nu börjar det gå igång, så jag gjorde som du sade faktiskt. Och det fungerade. Ändrade dock 3 till 2, då resultatet blev att en rad blev #333333, och sedan blev 2 #111111. Men men det fixade sig nu.

Tackar Erik, @nders och cyprys! :)

RED: Tack toha också. :)

:bire

372 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
237 ms — ändringar (db)