Använder denna kod för att göra varannan rad vit och varannan rad svart i en tabell. Goddagens z. Kan ju testa med: Eller varför inte bara <code> Heltalsdivesion är \. Är inte "nummer = nummer + 1" beräkning och tilldelning? Utförs inte det på varje rad? JAg pratar om tilldelningen till Color. Vilket är onödig att göra varje rad. <code> OK! Till z: Testa: Detta fungerar utmärkt! Tack för hjälpen alla!Fyra gånger i rad
Men vad ska jag ändra för att få fyra rader på raken svarta, sedan fyra vita, fyra svarta osv..?
<code>
nummer = nummer + 1
If nummer Mod 2 = 0 Then
stil = "#000000"
Else
stil = "#FFFFFF"
End If
</code>Sv: Fyra gånger i rad
Gör helt enkelt så att du byter ut If-raden mot följande:
If nummer Mod 8 > 3 Then
och så vidare.
Tänk på att första raden måste ha nummer 0...Sv: Fyra gånger i rad
<code>
Dim nummer
Dim Color
Dim Colors()
Dim ColorIndex
Const ColorCount = 2
Colors = Array("#000000", "#FFFFFF" )
Do Until rs.EOF
nummer = nummer + 1
If nummer >=4 Then
nummer = 0
ColorIndex = (ColorIndex + 1) Mod ColorCount
Color = Colors(ColorIndex)
End If
'Do stuff...
rs.MoveNext
Loop
</code>Sv: Fyra gånger i rad
<code>
Dim nummer
Dim Color
Dim Colors()
Dim ColorIndex
Const LineCount = 4
Const ColorCount = 2
Colors = Array("#000000", "#FFFFFF" )
nummer = 0
Do Until rs.EOF
nummer = nummer + 1
Color = Colors((nummer Div LineCount) Mod ColorCount)
End If
'Do stuff...
rs.MoveNext
Loop
</code>
(Antar att heltalsdivision heter Div. Kan inte ASP/VB än.)Sv: Fyra gånger i rad
nummer = nummer + 1
If nummer = 4 Then
If stil = "#000000" Then
stil = "#FFFFFF"
Else
stil = "#000000"
End If
nummer = 0
End If
</code>Sv: Fyra gånger i rad
Tänk på att du måste utföra två uträkningar. Hämta färgvärdet och tilldela det för varje rad. Medans min kod bara gör en kontroll och utför beräkningar och tilldelning vid var fjärde rad. Sv: Fyra gånger i rad
Sv: Fyra gånger i rad
Sv: Fyra gånger i rad
<%
Dim nummer
Dim Color
Dim Colors()
Dim ColorIndex
Const ColorCount = 2
Colors = Array("#000000", "#FFFFFF") 'Rad 8, fel
Do Until rs.EOF
nummer = nummer + 1
If nummer >=4 Then
nummer = 0
ColorIndex = (ColorIndex + 1) Mod ColorCount
Color = Colors(ColorIndex)
End If
'Do stuff...
rs.MoveNext
Loop
%>
</code>
Resulterar i fel på rad 8:
<code>
Microsoft VBScript runtime error '800a000d'
Type mismatch
</code>Sv: Fyra gånger i rad
<code>
antalrader=4
nummer = nummer + 1
If nummer = antalrader Then
If stil = "#000000" Then
stil = "#FFFFFF"
Else
stil = "#000000"
End If
nummer = 0
End If
</code>Sv: Fyra gånger i rad
Det är möjligt att många av ovanstående är mer korrekta, och bättre på alla sätt och vis....
Men om vi utgår från ditt ursprungliga kod, så räcker det väl att ändra till Mod 8 > 3
(som jag skrev ovan)...
Varför krångla mer än nödvändigt???Sv: Fyra gånger i rad
<code>
<%
Dim nummer
Dim Color
Dim Colors
Dim ColorIndex
Const ColorCount = 2
Colors = Array("#000000", "#FFFFFF")
Do Until rs.EOF
nummer = nummer + 1
If nummer >=4 Then
nummer = 0
ColorIndex = (ColorIndex + 1) Mod ColorCount
Color = Colors(ColorIndex)
End If
'Do stuff...
rs.MoveNext
Loop
%>
</code>Sv: Fyra gånger i rad
<code>
If nummer Mod 8 > 3 Then
color = "#000000"
Else
color = "#FFFFFF"
End If
nummer = nummer + 1
</code>