Förenkla If Else-satser?

ASP

11 svar · 223 visningar · startad av solbulle

Medlem sedan mars 20015 287 inlägg
Trådstart#1

Jag har en massa liknande satser i min kod:

If rs("Pris") <> "" then
strPris = strTd & "<td><b>Inköpspris:</b></td><td>" & RS("Pris") & " Kr</td><td></td></tr>"
Else
strPris = ""
End If

If rs("Kommentar") <> "" then
strKommentar = strTd & "<td  VALIGN=TOP><b>Kommentar:</b></td><td>" & RS("Kommentar") & "</td><td></td></tr>"
Else
strKommentar = ""
End If

(strTD innehåller lite <tr>/><td> liknande kod inkl styles)

som jag slutligen skriver ut med:

Response.write strPris & strKommentar

osv.

Finns det något enklare/smidigare sätt att kolla om jag har någon info i mitt rs och i så fall placera det i en variabel/få det utskrivet i en liknande tabellrad?

select case???

Medlem sedan dec. 200012 464 inlägg
#2

Du skulle kunna göra en funktion som

function condAssign(str1,str2)
if str1 <> "" then
  condAssign = str2
else
  condAssign = str1
end if
end function

strPris = condAssign(rs("pris"),strTd & "<td><b>Inköpspris:</b></td><td>" & RS("Pris") & " Kr</td><td></td></tr>")
Medlem sedan mars 20015 287 inlägg
#3

Kanon, där kapade jag en massa rader från min kod.
Får iofs inte denna att fungera, men jag kan ju köra de "på det gamla sättet"

strLjud = condAssign(rs("Ljud"),strTd & "<td><b>Ljud:</b></td><td><a class=film href=""" & "motor.asp?datafalt=Ljud&datavarde=" & server.urlencode(RS("Ljud")) & """>" & RS("Ljud") & "</td><td></td></tr>")
Medlem sedan mars 20015 287 inlägg
#4

Ingen som vet hur jag löser ovanstående? Det blir fel på server.urlencode-biten.

Ett fnuttfel antar jag?

Medlem sedan maj 20011 312 inlägg
#5

Jag har en fråga bara...vad innebär detta kommando i din kod?

server.urlencode(RS("Ljud"))

Medlem sedan mars 20015 287 inlägg
#6

?

Det gör ju så att länken blir "webläsarsäker" (kan man uttrycka sig så?)

typ:

<a href="motor.asp?datafalt=Ljud&datavarde=Dolby+Digital">

Vilket blir i adressfönstret:
motor.asp?datafalt=Ljud&datavarde=Dolby+Digital

Iställer för:

<a href="motor.asp?datafalt=Ljud&datavarde=Dolby Digital">

som blir:
motor.asp?datafalt=Ljud&datavarde=Dolby Digital

eller
motor.asp?datafalt=Ljud&datavarde=Dolby%20Digital

Medlem sedan mars 20002 836 inlägg
#7

Server.URLEncode gillar inte att få null-värden.

Du får se till att om det är ett null-värde så ska inte server.URLEncode användas

cya,
PatrikB

Medlem sedan mars 20015 287 inlägg
#8

Hm... men jag kör väl inte server.urlencode överhuvudtaget om RS är tomt? (eller Null?) I och med den funktion jag har som kollar om fältet innehåller något eller inte, så jag tycker inte att det kan vara problemet?

[red
Fast vid närmare eftertanke kanske den visst körs innei funktionen så att säga...?

Hur som helst, går det att lösa på något smidigt sätt? Iofs inte jätteviktigt, det fungerar ju "oftast" i alla fall.

Medlem sedan dec. 200012 464 inlägg
#9

Du kan kontrollera om ett värde är null med hjälp av funktionen isnull t.ex.

if not isnull(rs("fld") then

eller så kan man göra en kombinerad test av null och tom sträng.

if len("" & rs("fld")) > 0 then
Medlem sedan mars 20015 287 inlägg
#10

Jo, men jag ser inte riktigt hur det kan hjälpa mig här.
Min "ordinarie" sats fungerar som den är men det är när jag försöker att köra funktionen condAssign på den som jag får felmeddelandet:
Type mismatch: 'Server.urlencode'

Som jag ser det är det i funktionen något går snett. Jag fattar inte hur asptolken ens "hinner" fram till server.urlencode eftersom det första villkoret inte uppfylls? (Det är ju bara när RS är tomt som den klagar.)
Fast jag är väl ute o cyklar som vanligt.

Medlem sedan dec. 200012 464 inlägg
#11

Parametrarna till condAssign evalueras innan anropet och då körs server.urlencode

Du kan ju göra ytterligare en funktion

strLjud = condAssign(rs("Ljud"),strTd & "<td><b>Ljud:</b></td><td><a class=film href=""" & "motor.asp?datafalt=Ljud&datavarde=" & server.urlencode(nullAssign(RS("Ljud"),"")) & """>" & RS("Ljud") & "</td><td></td></tr>")
function nullAssign(str1,str2)
if isnull(str1) then
nullAssign = str2
else
nullAssign = str1
end if
end function
Medlem sedan mars 20015 287 inlägg
#12

Vad ska man säga... Fungera Klockrent! Tackar!

Börjar få småsår i pannan av allt bugande o bockande. :)

286 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
155 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)