webForumDet fria alternativet

Varannan grå, varannan mörkgrå...

ASP

13 svar · 752 visningar · startad av carbon.nu

Medlem sedan feb. 2002107 inlägg
Frågan#1

Hej

Jag har en asp fil som söker efter massa saker i en databas, och sen så radar den upp sakerna:

första raden=grå
andra raden=mörkgrå
tredje raden=grå
fjärde raden=mörkgrå
osv.

men jag vil ha det så här:

första raden=grå
andra raden=lite gråare
tredje raden=mörkgrå
första raden=grå
andra raden=lite gråare
tredje raden=mörkgrå
osv.

Hoppas ni kan hjälpa mig

så här ser koden ut:


<%
maingroup = Request.Querystring("maingroup")

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("midicart.mdb")
set rs=conn.execute("SELECT * FROM products where maingroup = '" & maingroup & "' ORDER BY item")
%>

<table cellpadding="2" cellspacing="1" border="0">

<% 
iCount = 0
Do While Not rs.EOF 'start the count
If Eval(iCount\2 = iCount/2) Then 'determine if the number is odd or even
%>

<tr bgcolor=#D9D9D9>
<% =RS("art_no") %></TR>

<% Else %>

<tr bgcolor=#E9E9E9>

<TD><% =RS("art_no") %></TR>

<%
                  End If
            iCount = iCount +1  'increment the counter
            rs.MoveNext
            Loop
       response.write "</table>"
 %>
Medlem sedan maj 20002 597 inlägg
#2

såhär kan en kod se ut för att byta färg på varannan rad:

<%
Do Until RS.EOF
  
cnt = cnt + 1
strColor = "#000000" 
If cnt Mod 2 = 0 then strColor = "#ffffff"
%>

	<table>
	  <tr bgcolor="<%= strColor%>">
	    <td>Bah</td></tr>
	</table>

<%
RS.MoveNext
Loop
RS.Close
%>
Medlem sedan dec. 200012 464 inlägg
#3

I princip så ser det ut så här

If iCount mod 3 = 0 then
  color = grå
elseif icount mod 3 = 1 then
  color = lite gråare 
else
  color = mörkgrå
end if

så får du fylla i detaljerna

Medlem sedan feb. 2002107 inlägg
#4

Sico: jo men jag vill ha tre olia rader...

LarsG: Jag provade att sätta in det, men de funkade inte, kan du hjälpa mig, jag är inte så duktig på asp..

Medlem sedan maj 20002 597 inlägg
#5

oj läste fel :(

Medlem sedan feb. 2002107 inlägg
#6

Jag provade en gång till att sätta in konden du gav mig, me det blir bara fel...

Hur gör jag??

Det är ingen som har lust att sätta in koden jag fick av LarsG i min kod så att det blir rätt???

Medlem sedan dec. 200012 464 inlägg
#7

Ok, lite mer detaljer. Det jag inte vet är vilket färg du vill ha där det står #?

<%
maingroup = Request.Querystring("maingroup")

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("midicart.mdb")
set rs=conn.execute("SELECT * FROM products where maingroup = '" & maingroup & "' ORDER BY item")
%>

<table cellpadding="2" cellspacing="1" border="0">

<% 
iCount = 0

Do While Not rs.EOF 'start the count
If iCount mod 3 = 1 then Then 
   bgcolor = "#D9D9D9"
elseif iCount mod 3 = 2 then
   bgcolor = "#?"
else
   bgcolor = "#E9E9E9"
end if
response.write "<tr bgcolor=" & bgcolor & "> RS("art_no") & "</TR>"

iCount = iCount +1  'increment the counter
            rs.MoveNext
            Loop
       response.write "</table>"
 %>
Medlem sedan feb. 2002107 inlägg
#8

Ok, vart kommer då raderna??

Medlem sedan feb. 2002107 inlägg
#9

Ok, tror jag fattar, så jag skrivar bara som jag gjort under då???

<%
maingroup = Request.Querystring("maingroup")

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("midicart.mdb")
set rs=conn.execute("SELECT * FROM products where maingroup = '" & maingroup & "' ORDER BY item")
%>

<table cellpadding="2" cellspacing="1" border="0">

<% 
iCount = 0

Do While Not rs.EOF 'start the count
If iCount mod 3 = 1 then Then 
   bgcolor = "#D9D9D9"
elseif iCount mod 3 = 2 then
   bgcolor = "#?"
else
   bgcolor = "#E9E9E9"
end if
response.write "<tr bgcolor=" & bgcolor & "> RS("art_no") & "</TR>"

iCount = iCount +1  'increment the counter
            rs.MoveNext
            Loop
       response.write "</table>"
 %>
' här kodar jag alltså hur raderna ska vara!?, så blir var tredje grå osv.
Medlem sedan feb. 2002107 inlägg
#10

Hej

Det funkade inte när jag provade som LarsG skrev.

Nån som har nåt annat förslag på hur man skulle funna lösa frågan? Eller är det helt kört?

Medlem sedan feb. 2002107 inlägg
#11

Hmmm, eller så har jag gjort helt fel :h , Hur ska jag skriva?

Medlem sedan mars 20015 287 inlägg
#12

Tycker det ser ut som om hans kod ska fungera, fyll i färgen bara, eller?
Du ska inte lägga till något vad jag kan se.

Medlem sedan maj 200010 687 inlägg
#13

Jag brukar skriva så här eftersom att man då inte behöver ha någon If-sats i loopen och koden blir då snabbare och snyggare. :)

<%
maingroup = Request.Querystring("maingroup")

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("midicart.mdb")
set rs=conn.execute("SELECT * FROM products where maingroup = '" & maingroup & "' ORDER BY item")
%>
<table cellpadding="2" cellspacing="1" border="0">
<% 
iCount = 0
vColor = Array("#D9D9D9", "#?", "#E9E9E9")

Do While Not rs.EOF 'start the count
	response.write "<tr bgcolor=""" & vColor(iCount Mod 3) & """>" & RS("art_no") & "</TR>"
	
	iCount = iCount + 1  'increment the counter
	rs.MoveNext
Loop
 %>
 </table>
Medlem sedan apr. 20003 424 inlägg
#14

om du kollar på LarsGs kod så ser du att han har med response.write så det ska bara vara att kopiera in den där du ska visa posterna.

<%
maingroup = Request.Querystring("maingroup")

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("midicart.mdb")
set rs=conn.execute("SELECT * FROM products where maingroup = '" & maingroup & "' ORDER BY item")
%>

<table cellpadding="2" cellspacing="1" border="0">

<% 
iCount = 0

Do While Not rs.EOF 'start the count
If iCount mod 3 = 1 then Then 
   bgcolor = "#D9D9D9"
elseif iCount mod 3 = 2 then
   bgcolor = "#?"
else
   bgcolor = "#E9E9E9"
end if
response.write "<tr bgcolor=" & bgcolor & "> RS("art_no") & "</TR>"

iCount = iCount +1  'increment the counter
            rs.MoveNext
            Loop
       response.write "</table>"
 %>
Skriver ut raderna -> response.write "<tr bgcolor=" & bgcolor & "> RS("art_no") & "</TR>"
251 ms totalt · 4 externa anrop · v20260731065814-full.2d97a731
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)