2017-08-06 80 views
-1

NET,我最近買了一本書開始自己試着按照練習。動態選擇主題

我知道你可以通過添加「theme」屬性來應用web配置文件的標籤中的主題,但是下面的練習是從下拉列表中選擇一個我不能很好理解的主題,根本不適合我。

這裏是母版頁CS碼(書代碼)

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()); 
     } 
    } 
} 

這裏是下拉列表

<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> 

這是書「開始ASP.NET 4.5.1爲例: C#和VB「

本書沒有提到任何缺失的步驟,說實話我不明白下拉列表」indexchanged「是如何鏈接到我在App_Themes文件夾中創建的主題。我只是假設這與「Page.Theme」有關。

在此先感謝。

+0

您可能需要繼續閱讀,因爲發佈的示例不會更改當前主題 –

+0

https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work可能有幫助。 – mjwills

回答

0

是的我必須創建一個新的Asp.net文件夾,然後App_Code文件夾,創建一個BasePage.cs文件夾,右鍵單擊並設置該文件編譯,複製和粘貼在BasePage.cs中缺少的代碼。

在所有的aspx頁面中應用了從Page到BasePage的所有繼承並完成之後。

謝謝你的回答。

0

The book包括該代碼:

set the theme

設定主題。

我懷疑你應該閱讀整章,你需要做所有的工作。您也可以閱讀entire source code(與您的比較)。