2017-08-06 6 views
-1

NET, ich kaufe vor kurzem ein Buch, um von mir selbst zu starten und versuchen, die Übungen zu folgen.Dynamisch wählen Sie ein Thema

Ich war mir bewusst, dass Sie ein Thema im Tag einer Web-Konfigurationsdatei anwenden können, indem Sie einfach "theme" -Eigenschaft hinzufügen, aber die folgende Übung war ein Thema aus einer Dropdown-Liste zu wählen, die ich nicht sehr gut verstehen konnte funktioniert einfach nicht für mich. Hier

ist der Master-Seite cs Code (Buch Code)

namespace WebApplication7 
{ 
    public partial class SiteMaster : MasterPage 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!Page.IsPostBack) 
      { 
       string selectedTheme = Page.Theme; 
       HttpCookie preferredTheme = Request.Cookies.Get("PreferredTheme"); 
       if (preferredTheme != null) 
       { 
        selectedTheme = preferredTheme.Value; 
       } 
       if (!string.IsNullOrEmpty(selectedTheme)) 
       { 
        ListItem item = ThemeList.Items.FindByValue(selectedTheme); 
        if (item != null) 
        { 
         item.Selected = true; 
        } 
       } 
      } 

     } 

     protected void Theme_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      HttpCookie preferredTheme = new HttpCookie("PreferredTheme"); 
      preferredTheme.Expires = DateTime.Now.AddMonths(3); 
      preferredTheme.Value = ThemeList.SelectedValue; 
      Response.Cookies.Add(preferredTheme); 
      Response.Redirect(Request.Url.ToString()); 
     } 
    } 
} 

Hier wird die Dropdownlist

<asp:DropDownList ID="ThemeList" runat="server" OnSelectedIndexChanged="Theme_SelectedIndexChanged" AutoPostBack="True"> 
         <asp:ListItem Value="monochrome" >Monochrome</asp:ListItem> 
         <asp:ListItem Value="colors">Colors</asp:ListItem> 
        </asp:DropDownList> 

Dies ist ein Beispiel für das Buch „Beginning ASP.NET 4.5.1: in C# und VB "

Das Buch erwähnt keinen fehlenden Schritt und um ehrlich zu sein, verstehe ich nicht, wie die Dropdown-Liste" indexchanged "mit den Themen verknüpft ist, die ich im App_Themes-Ordner erstellt habe. Ich gehe nur davon aus, dass dies mit "Page.Theme" zusammenhängt.

Vielen Dank im Voraus.

+0

Sie müssen wahrscheinlich weiter lesen, da das angegebene Beispiel das aktuelle Thema nicht ändert –

+0

https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work kann hilfreich sein. – mjwills

Antwort

0

Ja Ich musste einen neuen Asp.net-Ordner erstellen, dann App_Code-Ordner, erstellen Sie einen BasePage.cs-Ordner, klicken Sie mit der rechten Maustaste und legen Sie diese Datei zum Kompilieren, Kopieren und Einfügen des fehlenden Codes in BasePage.cs.

Nach alle Vererbung von Seite auf BasePage in allen meinen aspx-Seiten und getan.

Vielen Dank für Ihre Antwort.

0

The book enthält diesen Code:

set the theme

das Thema einzustellen.

Ich vermute, dass Sie das gesamte Kapitel lesen sollten, Sie müssen alles tun, damit es funktioniert. Sie können auch die entire source code lesen (zum Vergleich).

Verwandte Themen