Försökte mig på nedanståend men gick på bet. Skall man inte kunna göra enligt nedan? Användaren kan välja mellan två färgteman; blått (color_blue) och grönt (color_green). Dessa färgteman ligger som color_blue/green.asp i underliggande inst-mapp. Jag vill stämma av i databasen vilket färgtema de valt och sedan ladda det schemat med includefilen men får följande fel: Feltyp:
Active Server Pages, ASP 0126 (0x80004005)
Include-filen 'inst/<% =strFargTema %>.asp' kunde inte hittas.
/public_html/medlemssidor/default.asp, line 29
Set RSFargTema = Connect.Execute("Select FargTema From AnvDb Where AnvId = '" & AnvId & "';")
If Not RSFargTema.EOF Then
strFargTema = RSFargTema
Else
strFargTema = "color_blue" 'Standard
End If
%>
<!-- #include file="inst/<% =strFargTema %>.asp" -->
Tillåt mig gissa:
Det går inte att köra asp-kod i en includesats.
Det är något fjantigt enkelt fel som jag inte ser.
Pinsamt. Det var ju alternativ två som tyvärr var rätt. :r
Löste det så här:
If Not RSFargTema.EOF Then
Select Case(RSFargTema("FargTema"))
Case "color_blue"%><!-- #include file="inst/color_blue.asp" -->
<% Case "color_green" %><!-- #include file="inst/color_green.asp" -->
<% End Select
Else
<!-- #include file="inst/color_blue.asp" -->
End If
Jag provade att köra med Server.Execute men det fungerade inte. Den verkar inte ladda in filerna. När jag kollar på HTML-koden genom klienten finns inga färgkoder. Jag provade att skriva ut RSFargTema("FargTema") och där står mycket riktigt color_blue.
Med tanke på att det handlar om färgteman så tycker jag helt klart att du ska skippa alla hittills föreslagna lösningar och istället satsa på att använda olika css-filer.
Håller med föregående talare.
Eftersom att när du includerar filer enligt din modell så kommer alla tre att laddas in på sidan även fast du bara utnyttjar en.
Om du använder server.execute så kan man bl.a. inte utnyttja variabler från den exekverande filen på sidan alltså är även det ett dåligt förslag. Men en dynamisk CSS-fil går allderles utmärkt.
Dim RSFargTema
RSFargTema = "color_blue"
If Not RSFargTema.EOF Then
Select Case(RSFargTema("FargTema"))
Case "color_blue" : RSFargTema = "color_blue"
Case "color_green" : RSFargTema = "color_green"
Case "color_red" : RSFargTema = "color_red"
End Select
End If
Response.Write "<link rel=""stylesheet"" type=""text/css"" href="""& RSFargTema &".css"" />"
Eller varför inte:
Dim RSFargTema
RSFargTema = "color_blue"
If Not RSFargTema.EOF Then RSFargTema = RSFargTema("FargTema"))
Response.Write "<link rel=""stylesheet"" type=""text/css"" href="""& RSFargTema &".css"" />"
Intressant. Nu är dock inte Css något jag är en höjdare på. Dessa färgteman består av enkla rader av formatet:
BgColor = "#F9F9F9" och anropas sedan i aspsidan genom
<Body bgcolor="<% =BgColor %>">
Ett problem uppstod dock med en annan grej. Jag har att en speciell tabell, eller snarare en speciell <tr> skall vara i en separat färg. Jag provade en liknande variant som till bodyn men då blev alla tabeller av denna färg. Kan man specificera att det bara skall vara den tabellen?