KoTTeNMedlem sedan sep. 20011 722 inläggTja! Koden nedan är till för att loppa ut en dropp down med siffrorna 1 – 50 i.
<SELECT NAME="Nummer">
<OPTION>NR</OPTION>
<%
For Slinga = 1 To 50
Response.Write("<OPTION ")
If Slinga = Request.Cookies("addera_lat")("Nummer") Then
Response.Write("SELECTED ")
End If
If Slinga < 10 Then
Response.Write("VALUE=""0" & Slinga & """>0" & Slinga & "</OPTION>")
Else
Response.Write("VALUE=""" & Slinga & """>" & Slinga & "</OPTION>")
End If
Next
%>
</SELECT>
För varje tal som skrivs ut så kollar jag genom en If-sats om talet liknar ett annat tal som finns lagrad i en kaka. Om värdet stämmer så ska SELECTED skrivas ut. (dvs talet blir förvalt) Men ingenting händer, jag får inga felmedelande, utan listans första post visa (nr). Jag vet att kakan innehåller ett tal, då jag testade att skriva ut det separat. Men om jag testar att byter ut
If Slinga = Request.Cookies("addera_lat")("Nummer")
Then
Mot exempelvis
If Slinga = 10 Then
Så kommer siffran 10 fram som förval.
Varför????
@ndersMedlem sedan juni 200032 967 inläggSvaret på frågan är subtyper.
För att en jämförelse skall kunna vara sann, så måste det du jämför vara av samma subtyp, i detta fall tal. Du måste då använda en typkonverteringsfunktion, exempelvis CInt().
If Slinga = CInt(Request.Cookies("addera_lat")("Nummer")) then
Koden kan dock ge problem om du försöker konvertera något som inte är ett tal till ett tal. Så om Request.Cookies("addera_lat")("Nummer") är tom, så kan du få problem. Då kan det vara smart att konvertera de båda värden du vill jämföra till strängar i stället, med CStr().
Mvh,