Hi,
Great book and I'm sure this is an error on my behalf, but it's driving me crazy trying to figure out what's going on. When I build the web site, I keep getting three errors stating that the 'ThemeList', 'Menu1' & 'TreeView1' do not exist in the current context....
Those controls are clearly defined in Frontend.master and the errors are showing up in the Frontend.master.cs file. I will attach code of both below.
Thanks in advance for your help!
Damon
Here is the code for Frontend.master:
Code:
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Frontend.master.cs" Inherits="MasterPages_Frontend" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
<script src="/Scripts/modernizr-2.6.2.js"></script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>
<div id="PageWrapper">
<header><a href="/"></a></header>
<nav>
<asp:Menu ID="Menu1" runat="server" CssClass="MainMenu" DataSourceID="SiteMapDataSource1" Orientation="Horizontal" StaticEnableDefaultPopOutImage="False"></asp:Menu>
<asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1" ShowExpandCollapse="False">
<LevelStyles>
<asp:TreeNodeStyle CssClass="FirstLevelMenuItems" />
</LevelStyles>
</asp:TreeView>
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="False" />
</nav>
<section id="MainContent">
<asp:SiteMapPath ID="SiteMapPath1" runat="server"></asp:SiteMapPath>
<br />
<br />
<asp:ContentPlaceHolder ID="cpMainContent" runat="server">
</asp:ContentPlaceHolder>
</section>
<aside id="Sidebar">
Select a theme<br />
<asp:DropDownList ID="ThemeList" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ThemeList_SelectedIndexChanged">
<asp:ListItem>Monochrome</asp:ListItem>
<asp:ListItem>DarkGrey</asp:ListItem>
</asp:DropDownList>
<br />
<br />
<Wrox:Banner ID="Banner1" runat="server" DisplayDirection="Vertical" />
<br />
</aside>
<footer>Footer Goes Here</footer>
</div>
</form>
</body>
</html>
This is the code for Frontend.master.cs:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class MasterPages_Frontend : System.Web.UI.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;
}
}
}
switch (Page.Theme.ToLower())
{
case "darkgrey":
Menu1.Visible = false;
TreeView1.Visible = true;
break;
default:
Menu1.Visible = true;
TreeView1.Visible = false;
break;
}
}
protected void ThemeList_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());
}
}
Here are the error messages from VS:
Code:
Error 1 The name 'ThemeList' does not exist in the current context T:\Damon\Wrox\BegASPNET\Site\App_Code\Frontend.master.cs 22 25 Site
Error 2 The name 'Menu1' does not exist in the current context T:\Damon\Wrox\BegASPNET\Site\App_Code\Frontend.master.cs 32 9 Site
Error 3 The name 'TreeView1' does not exist in the current context T:\Damon\Wrox\BegASPNET\Site\App_Code\Frontend.master.cs 33 9 Site
Error 4 The name 'Menu1' does not exist in the current context T:\Damon\Wrox\BegASPNET\Site\App_Code\Frontend.master.cs 36 9 Site
Error 5 The name 'TreeView1' does not exist in the current context T:\Damon\Wrox\BegASPNET\Site\App_Code\Frontend.master.cs 37 9 Site
Error 6 The name 'ThemeList' does not exist in the current context T:\Damon\Wrox\BegASPNET\Site\App_Code\Frontend.master.cs 46 28 Site