Avatar billede gulbaek Nybegynder
30. august 2006 - 00:50 Der er 7 kommentarer og
1 løsning

Skifte mellem Themes

Hejsa, sidder lige og forsøger at lave et lille eksempel, hvor jeg kan vælge imellem 4 themes, alt efter årstiden. Som koden er nu, er der en forsinkelse på når man skifter theme. f.eks. til at starte med er der valgt Winter theme, når jeg så vil skifte til Spring theme, blir den ikke ændret, men når jeg så skifter til Summer blir mit Spring theme vist.

Default.aspx

<body>
    <form id="form1" runat="server">
        <asp:Image ID="Image1" Runat="server"  SkinID="Logo" /><br />
        <asp:RadioButtonList ID="RadioButtonList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged">
            <asp:ListItem Selected="True">Winter</asp:ListItem>
            <asp:ListItem>Spring</asp:ListItem>
            <asp:ListItem>Summer</asp:ListItem>
            <asp:ListItem>Fall</asp:ListItem>
        </asp:RadioButtonList>
    </form>
</body>

Default.aspx.cs

void Page_PreInit(object sender, EventArgs e)
    {
        if (Session["theme"] == null)
        {
            Session.Add("theme", "Winter");
            Page.Theme = ((string)Session["theme"]);
        }
        else
        {
            Page.Theme = ((string)Session["theme"]);
        }
    }

    protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        Session.Add("theme",RadioButtonList1.SelectedValue);
    }

Summer.skin

<asp:Image runat="server" SkinID="Logo" src="App_Themes/Summer/Images/weather-clear.png"/>


Håber nogen kan finde fejlen og lige et ekstra spørgsmål, er det virkelig nødvendig at bruge den fulde adressse til mit billede, App_Themes/Summer/Images/weather-clear.png har nemlig set en del eksempler hvor de nøjes med /Images/weather-clear.png men det virker ikke hos mig.

Grunden til at jeg spørger er at det link ikke virker hvis jeg opretter en undermapper med en ny aspx fil som bruger samme theme.
Avatar billede snepnet Nybegynder
30. august 2006 - 00:57 #1
Opret skins med billeder der refererer relativt til de images du har i dit tema.
Mht. det med at skifte tema, så bliver du nødt til at gøre det på "en gammeldags" måde, hvis du vil lave det sådan der:

void Page_PreInit(object sender, EventArgs e)
{
  Page.Theme = Request.Form["RadioButtonList1"];
}

Du for øvrigt lave et override istedet for at lave det i preinit:

public override string Theme
{
  get{ ... som før;}
}

Mvh
Avatar billede gulbaek Nybegynder
30. august 2006 - 11:15 #2
Takker, for hjælpen, men kan du ikke lige komme med et eksempel på det med at referere relativt til mine billeder.

Mit bud er nemlig
<asp:Image runat="server" SkinID="Logo" src="Images/weather-clear.png"/>

Men det blir lavet om til følgende url.
http://localhost/ThemeTest/Images/weather-clear.png

Hvilket jo ikke virker de der slet ikke findes nogen mappe der.
Avatar billede gulbaek Nybegynder
03. september 2006 - 22:12 #3
Ingen der har en ide til hvordan jeg skal få mine billeder til at virke

<asp:Image runat="server" SkinID="Logo" src="Images/weather-clear.png"/>

Ovenstående virker nemlig ikke
Avatar billede snepnet Nybegynder
03. september 2006 - 23:16 #4
Site
  Themes
    SomeTheme
      Images
        weather-clear.png
      SomeSkinFile.skin <-- Hvis den kode du har vist ligger her, skulle det være ok. 

Mvh
Avatar billede gulbaek Nybegynder
06. september 2006 - 16:23 #5
Kan bare ikke få de til at virke, har prøvet at lave en meget simpel test side. på følgende billede kan fil strukturen ses http://www.gulbaek.net/tmp/opbygning.jpg  og den komplete kode ser således ud.

Default.aspx
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Theme="summer" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:Image ID="Image1" Runat="server"  SkinID="Logo" />
    </div>
    </form>
</body>
</html>

Summer.skin
<asp:Image runat="server" SkinID="Logo" src="Images/weather-clear.png"/>

Har prøvet med stort 'S' i Theme="summer" det er bare visual studio der gerne vil have den skrevet med småt eller påstår den at den ikke kan finde den.

Og den kode resultere i følgende url http://localhost/themeTest/Images/weather-clear.png  som jo selvfølgelig ikke virker.
Avatar billede snepnet Nybegynder
06. september 2006 - 18:07 #6
Den serverside property der sætter billeder hedder ImageUrl - ikke src.
Mvh
Avatar billede gulbaek Nybegynder
06. september 2006 - 18:25 #7
Så virkede det, takker, smid et svar hvis du vil have lidt point :-)
Avatar billede snepnet Nybegynder
06. september 2006 - 19:30 #8
Det kommer her :o)
Mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester