2016-04-19 3 views
0

Ich richte meine ASP.NET-Site ein, um Themen dynamisch mit einer Dropdown-Liste zu wechseln. Die Themen ändern sich mit jeder neuen Auswahl, aber die Themen stimmen nicht mit der richtigen Auswahl überein. In meiner App_Themes-Datei sind die Themenordner wie folgt aufgelistet: "Blau", "Grau" und "Grün". Mit jeder neuen Auswahl durchläuft das neu angewendete Thema einfach in dieser Reihenfolge, egal welche Auswahl ich mache.ASP.NET-Site, die falsche Designs anwendet

Beispiel: Das erste Mal, wenn ich ein neues Thema auswähle, wird es blau sein. Beim zweiten Mal wird es grau sein. Der dritte ist grün und so weiter.

Was mache ich falsch?

Default.aspx

<asp:DropDownList ID="ThemeList" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ThemeList_SelectedIndexChanged"> 
    <asp:ListItem Value="Blue">Blue Theme</asp:ListItem> 
    <asp:ListItem Value="Green">Green Theme</asp:ListItem> 
    <asp:ListItem Value="Gray">Gray Theme</asp:ListItem> 
</asp:DropDownList> 

Default.aspx.cs

protected void ThemeList_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    Session["theme"] = ThemeList.SelectedItem.Value; 
} 

protected void Page_PreInit(object sender, EventArgs e) 
{ 
    if(Session["theme"] == null) 
    { 
     Page.Theme = "Blue"; 
    } 

    else 
    { 
     String chosenTheme = Session["theme"].ToString(); 

     switch (chosenTheme) 
     { 
      case "Blue": 
       Page.Theme = "Blue"; 
       break; 
      case "Green": 
       Page.Theme = "Green"; 
       break; 
      case "Gray": 
       Page.Theme = "Gray"; 
       break; 
      case "default": 
       Page.Theme = "Blue"; 
       break; 
     } 
    } 
} 
+0

Keine Antwort, aber ein Vorschlag: Statt des if-else-switch-Codes können Sie dies in der Page_PreInit-Methode auf eine Zeile reduzieren: 'Page.Theme = Session [" theme "]. ToString () "Blau"; " –

Antwort

0

Hier ist ein good example von dem, was Sie zu erreichen versuchen.

Diese answer kann Ihnen eine Idee geben, wie ein Postback, das von einem dynamischen Steuerelement (Dropdown-Liste in Ihrem Fall) generiert wird, von Code hinter verarbeitet wird.

Diese page bietet mehrere Möglichkeiten, Themen zu programmieren und dynamisch zu ändern.

Verwandte Themen