Web Forms :: Nested Master Pages And Themes?
Aug 12, 2010to a vb code resource/tutorial that explains how you can change a theme from a dropdown list on a content page derived from a nested master page, not the main master page.
View 1 Repliesto a vb code resource/tutorial that explains how you can change a theme from a dropdown list on a content page derived from a nested master page, not the main master page.
View 1 RepliesI have been working on a fun little project just to build my skills as an ASP.Net developer. I have learned quite a bit thus far, and don't normally post questions in forums. Google and the books I own generally do the trick for me. But for this question I would like some community input.
I am developing a simple blog platform in ASP.Net / C#. Eventually I hope it will basically be a clone of how Wordpress works. Again, this is mostly a learning project for myself and I realize there are many projects out there doing what I am doing in .Net.
Anyways, the question I want some input on is whether I should use themes or master pages to customize the look and feel of the site. As I understand it, a theme mostly just changes colors and such, but CAN do much more. Whereas a master page can easily change the look and feel of an entire site.
What are the pro's and con's of either route, and what would y'all recommend? I'm not really looking for code examples here, just input on what y'all would think is the best route to pursue.
We have a nested master page which we have made it as a seperate class library.(Becoz many projects use the same master page) Initially we had all our css files,skin files, images inside the Master page project itself. But now we wanted the themes to be global and moved it out to wwwroot as mentioned in the below link.
http://quickstarts.asp.net/QuickStartv20/aspnet/doc/themes/themes.aspx#global
The Masterpage has user controls out of which one user control has the telerik menu. The css is not getting set for that particular user control. We use relative path for setting the style sheet link. But it is not getting set. Its still referring to the old path. But all the skin files, images are pointing to the new global location. Except for the telerik menu rest all is aligned according to the style sheet.
When i do view source, the link to style sheet is pointing to the old location. I dunno why this happening. Is this a telerik issue or i am going wrong somewhere.
I'm trying to set profiles/themes using a basepage to allow the colour of my site to change for users. I can do this on a single page but I'm trying to do this site wide and am getting an error.
I've been watching http://www.asp.net/general/videos/how-do-i-create-user-selectable-themes-for-a-web-site this tutorial
but I'm getting errors at the final step...
System.NullReferenceException was unhandled by user code Message="Object reference not set to an instance of an object." Source="App_Code.gflsvdcc" StackTrace: at BasePage.OnPreInit(EventArgs e) in D:WebsitesBalticQuarter19.01.11App_CodeBasePage.vb:line
9 at System.Web.UI.Page.PerformPreInit() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) InnerException:
is the error, The error occurs because of the line 9 =
9 - Me.Theme = Request.Form(Me.Master.FindControl("DropDownList1").UniqueID)
If I insert this instead of the text above the colours change on the site.
Me.Theme = Request.Form("ctl00$DropDownList1")[code].....
I have atleast 10 websites that have different css,html,javasacripts and webconfig. But the same code behind files.With this design everything is hard to maintain. So I decided to work on it and I started moving all the queries in the code beghind file to stored procedures. Since every website uses the same database.
What I have decided is to make use of themes and multiple master pages? IS this the best way to go about it?
Also lets say I have two templates. There is site A and site B. both using different templates. And have pages Home About Us and Contact.
Now would I be creating three different masterpages? for each template so 6 in total? ( since none of the templates are supposed to look the same)
or Should I just create two masterpages? if so how would I manage the html of the page so it looks different?
I got a Master page and nested master pages in the subfolders.
Top Level Master page
Second Level Master page inherited Top Level Master page
Third Level Master page inherited Second Level Master page
However, changes (i.e. new images & alt. name) that I made in the Top level master page did not apply to the second or third levels.My webpage has a correct front page but not in the sections. How can i correct this ?
I have a VS2008 / C# app with about 30 web pages. All of them access a central Master Page and it works well.
I now have a new page to create which will have many, many sub-pages. The hierarchy will look like this:
Master Page
Web Page
Sub Page 1
Sub Page 2
. . .
Sub Page N
Doing a lot of reading, apparently I can turn the "Web Page" into a nested Master Page and then each Sub Page would become a Web Content Form. Just wondering, is this the ONLY approach I have available to accomplish this? Or are there other options?
I have 2 nested master pages, lets call them MP1 and MP2. MP1 is top level, MP2 is level
2. Then I have several content pages. Lets say I have 2 content pages for now CP1 and CP2. Each content page has a form that will have some user input and a SaveData()function that saves the data to a database. Each content page also has a "Save" button that calls the SaveData() function.
MP1 and MP2 have several link buttons. The functionality I need is this: Any time a user clicks on a link button in MP1 or MP2, the SaveData() function of the currently loaded page should be called. This is to save the data even if the user forgets to click the "Save" button before leaving the page.
So far I can do this from the link buttons in MP2. I followed the master pages tutorial # 7
In the .cs file for MP2, I declare:
public event EventHandler SaveData;
then i raise a "SaveData" event any time a link button in MP2 is clicked.in every content page (CP1, CP2 etc.) aspx file, I have Master Type directive to assign the Master Page to MP2.
in CP1, CP2 etc .cs file, i have the following code:
protected void Page_PreInit(object sender, EventArgs e)
{
//wire up the SaveData event from MP2 to Master_SaveData function in this page.
Master.SaveData += new EventHandler(Master_SaveData);
}
private void Master_SaveData(object sender, EventArgs e)
{
//when the MP2 SaveData event is raised, save the data in this page.
SaveData();
}
All of this works fine.Problem is I am not able to do a similar thing from MP1.What I have tried so far is to raise an event in MP1 that is handled in MP2. When the event is handled in MP2, it raises the SaveData event to be handled in the page. The event in MP1 is null and hence never raised.
I am developinga site whichI want to contacin 2 'sub sites' - one for business clients and one for Home clients.
I therefore want to base each 'sub site' on a slightly different master page.
I have a base master calleed master1.master:
[Code]....
I then created a home.master using master1.master as its master:
[Code]....
BUT... on the web page all the contentplace holders are flagged as in error eg 'Could not fine "head" in the current master page or pages' where head is replaced by each placeholderIf I change the MasterPageFile= to point at master1.master the errors go away - but of course I dont have the differences in the page (at the moment just the menu)
I have tried the suggestions in http://forums.asp.net/t/1218788.aspx/2/10 but although the errors go away, the images in the Master1 left column don't get displayed and some of the css seems to disappear
I have a master page. This is where I put my ScriptManager control.I have a nested master page within the master page.I have a content page within the nested master page. This content page needs to register a Postback control with the ScriptManager, but I can't figure out how to access the ScriptManager. Both Master.FindControl() and Master.Master.FindControl() always return null. I also attempted to use a strongly typed master page, but like all controls, the ScriptManager is protected and thus inaccessible from the content page. How can I access the ScriptManager?
View 2 RepliesI have constructed a few web pages that are constructed from Nested Master Pages. Here's an example of what they look like: http://pelalusa.com/Downloads/Public/NestedMasterPageExample.JPG
The rectangular area on the right side is where the Content Pages are displayed. Everything else is one of the two nested Master Pages.
To navigate to a particular Content Page the user will navigate down the treeview on the left, then pick an "Activity" and then pick a "Major Task". When this happens then a Page Redirect occurs to the appropriate Content Page.
It works but the page reload leads to a terrible looking UI. What would be MUCH better is if I could somehow just change what appears in the Content Page area. Is there a way to do this? If it matters, every page has an AJAX UpdatePanel on it.
I want to retrieve a dropdown seleted value on click of a button but, on button click I am unable to retrieve the value as Page postback occurs and the dropdownlist get populated again.
I tried using the !IsPostback for the dropdown populte functionality but nothing. Even tried setting the seleted value on pageload itself before dropdown populate but again null come to the string.
I feel that because of nested master pages ( Iam using Parent.Master over Home.Master which consumes abc.aspx) I am unable to retrieve the values.
Using MVC 2 for what it matter. (And also keep in mind for some reason I NEVER used Nested Master Pages)
I got a single Master page that work across my site.
However, I found from the design now, that each "Area" have a different subnavigation.
Figured it might finally be a reason to use Nested Master Pages....resulting into a lot of swearing over here...
What I did:Add a "Nested Master Page" to the "Shared" folder of a specific Area
(project/Areas/xxxx/Views/Shared/NestedMasterPage.Master)VS bring up a box asking to specify a Master Page, and I select the only one i have (project/Views/Shared/Site.Master)Leave it as is, I add a new View and for it's Master Page I browse to the new Nested Master Page.When I click Add, the following Error comes up:"The ContentPlaceHolder 'MainContent' doesn't exists in the Master page '~/Areas/xxx/Views/Shared/NestedMasterPage.master'. Please choose a valid ID for this Master Page.Bit buffled..the code for the nested master look like this:[Code]....
'MainContent' right there, or what is VS talking about?
My application has a Parent master page, a child master page and an aspx page( inheriting the child master page)
> Parent master page has two content placeholders ( A and B)
>Child master page uses the content placeholder A and instills two more placeholders ( C and D)
>aspx page can now use C and D naturally
However i would like to know whether the aspx page can place contents inside the placeholder B( which was not used by child master page)
I have a nested master page and CalendarExtender errors for any asp pages that references the nested master page.
The calendarExtender works if i put it on a page that references the top level master page and also if i add it to the nested master page it works.
I have the scriptmanager in my top level master and i have tried placing it in the child master and the child asp page.It compiles and works at run time. The problem is at design time any container that contains the CalendarExtender errors so i can't view the layout. I have an asp:panel with a table and a number of controls, one being the calendar extender. The entire panel errors and wont render any of the controls.
I have a PAGE with a structure like this:PAGE = MASTER PAGE A + nested MASTER PAGE B of A
View 2 RepliesI am using v3.0.31106.0 of the AjaxControlTookkit.dlll. I have nested master pages. The site Master page has the only ScriptManager & holds the oneColumn & twoColumn master pages. The twoColumn master page holds content pages. In the content page there is a update panel.
Here is my Site Master Page:
[Code]....
Here is the Nested Master Page:
[Code]....
Before the update page I put the ToolkitScriptManager. In the update panel I put a button with a ConfirmBox Extender. I then get an error saying Only one instance of a ScriptManager can be added to the page. If I take the ToolkitScriptManager out this error goes away but then I get an error saying The ConfirmBox Extender is not recognized.According to all the posts I have read the last 24hours the master page should have the ScriptManager and the content page should hold the toolkitScriptManager.Here is my content page:
[Code]....
Here is the web.config file:
[Code]....
I have a main master page, say MasterPageMain, and a couple of folders with couple of pages in each folder which act as a child page to that master page - MasterPageMain.
Now, I have about 10 pages in one of the folder which follows a certain pattern and they could really use a nested pages since any change on some parts needs me to change all the pages which is a pain really.
I already added a Nested master page, say NestedMasterPage - which is a child of MasterPageMain
I tried to change one of the page's <%@ Page directive to NestedMasterPage, immediately, there were a lot of errors. plus I dint know where the NestedMasterPage's children content would go.
What do I need to know in order to do this succesfully?
ps: I dint do this initially because I only had 2 pages, and I dint need this at that time, as the project grew, now i see that I should have changed it much earlier..
First off, suggest better ways if you want rather than patch up this code. I am just starting this project and it is first time I have tried to code a web site so anything you suggest is very much welcomed. I have spent the last 2 and 1/2 days trying to find workable answers to this but none I have found and tried seem to fit. If needed I can email screens shots or code. I am trying to construct a website that will have the same main theme throughout as far as the header, navbars sitemap, and footer go. Naturally the content will vary from page to page. I want to use a single master page and css stylesheet for this main theme and I will change the content format as needed per page because each page may vary somewhat.
However, about 15 of the pages will all use the same format for their content and this format will differ from the rest of the site but the format of the main theme will stay the same. So I am trying to create a nested master page to use to format the just the content area for all these pages while retaining the main theme for the header, etc.. I believe I should use a separate css file with the nested master page to handle the formatting of the content areas for these 15 pages. I have code that looks like it works when viewed in web developer but design view but does not work when viewd through a browser (IE, Chrome, Firefox). So far I have the following done in web developer.
If it helps the code and screen shots follow. Master Page called "Parent.master". For all theme throughout site Nested Master Page called "Lab.master". For the 15 like pages Primary stylesheet file for main theme called "StylesheetNew.css" For site theme Secondary stylesheet file to syle the 15 like formatted pages. It is called Labmaster.css Labs.apsx file to use as first of the 15 like pages.
Finally screens shots from web developer and browser. Sorry try as I might I could not capture screenshots and put them into this post. The problem is that web developer shows all the area (many lines high) with gray background and with the XXX text that I want to allocate for content in the 15 pages. Yet all the browser show is one line of text o a white background followed by the footer. It looks like the LabStyleSheet works in Web Developer but not in a browser.
Parent.master
<%@ Master Language="VB" CodeFile="Parent.master.vb" Inherits="MasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[URL]">
<html xmlns="[URL]">
<head id="ParentHeader" runat="server">
<title>HX5</title>
<asp:ContentPlaceHolder runat="server" id="headerPlaceHolder" />
<link href="~/StyleSheetNew.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<div id="wrapper" >
<div id="Header" >
<table class="hdrtbl1" >
<tr>
<td id="hdrtd1" style="width:175px; height:100px;" >
<img id="logo" alt="Logo" src="../Images/logo.png" style="width: 136px; height: 87px" />
</td>
</tr>
</table >
<table class="hdrtbl2" >
<tr><td id="hdrtbl2td1"><b> Providing Professional Technical, Manangement and Business Solution</b></td></tr>
<tr><td id="hdrtbl2td2"> <b> Services since 2004 </b></td></tr>
<tr> <td id="hdrtbl2td3" align="center" ><img id="rdln" alt="RedLine" style=" height:3px;" src="../Images/RedLine.png" /></td></tr>
<tr><td id="hdrtbl2td4" > <b>Committed to Excellence In All We Do</b></td></tr>
</table>
</div>
<div id="navbardiv">
<ul id="topnav">
<li><a href="../pages/about.aspx" >About Us <img style=" border: none; " src="../Images/arrow-down.gif" /></a>
<!--Subnav Starts Here-->
<span>
<a style="font-weight:lighter; " href="#" >Who We Are </a> |
<a href="#">Locations</a> |
<a href="#">Business Classifications</a> |
<a href="#">Contact Us</a> |
</span>
</li>
<!--Subnav Ends Here-->
<li><a href="../pages/services.aspx">Services <img alt="arrow" style="border: none; " src="../Images/arrow-down.gif" /></a>
<!--Subnav Starts Here-->
<span>
<a style="font-weight:lighter; " href="#" >Capabilities</a> |
</span>
<!--Subnav Ends Here-->
</li>
<li><a href="#">Customers <img style=" border: none; " src="../Images/arrow-down.gif" /></a>
<span>
<a style="font-weight:lighter; " href="#" >Subnav Link</a> |
<a href="#">Customer Locations</a> |
<a href="../pages/labs.aspx">Labs</a> |
</span>
</li>
<li><a href="#">Careers <img style=" border: none; " src="../Images/arrow-down.gif" /></a>
<!--Subnav Starts Here-->
<span>
<a style="font-weight:lighter; " href="#" >Joining the HX5 Team</a> |
<a href="#">Current Opportunities</a> |
</span>
</li>
</ul>
</div>
<div id="subnavbar" >
<!-- <asp:SiteMapPath ID="SiteMapPath" runat="server">
</asp:SiteMapPath> -->
</div>
<div id="topContent" style="border-bottom:solid 1px #191970;">
<table>
<tr><td style="height:30px; width:900px;" >
<asp:ContentPlaceHolder id="TopPlaceHolder" runat="server">
</asp:ContentPlaceHolder>
</td>
</tr>
</table>
</div>
<!-- <div id="mainContent"> -->
<asp:ContentPlaceHolder id="MainPlaceHolder" runat="server" />
<!-- </div> -->
<!-- <div id="lowerContent"> -->
<asp:ContentPlaceHolder id="LowerPlaceHolder" runat="server">
</asp:ContentPlaceHolder>
<!-- </div> -->
<div id="footerContent" style=" height:50px; width:900px; text-align: right; background-color: #ccc; ">
<span style=" font-family: Arial, Helvetica, sans-serif; font-size: xx-small; font-weight: bold; color: #000080; margin: 30px 20px 0px 0px;"> Copyright 2010 HX5, LLC All rights reserved</span></div>
</div>
</form>
</body>
</html>
I've got a web site that has a master page and that master page (mpMaster that has a user control ucControl1) which has a sub user control (ucControl2), this user control has a property which accepts a value. Now, I have a page that uses the master page
and on this page I have another user control (ucPageControl), I need to find a way of setting the value in ucControl2 from ucPageControl. Is this possible at all?
I have a master page which contains a treeview and a linkbutton. i have used 3 different stylesheets for the same page and those are listed in dropdownlist on the same master page. on dropdownlist change() event stylesheet of the master page change, i have 1 default style sheet which will come as master page loads.
now the problem is when i changed stylesheet from dropdown list, stylesheet changes the master page , but after that when if i clicked on treeview or linkbutton the stylesheet is restored to default one.
i have written following code
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
I have an App_Themes directory, and also Master pages for a ASP.NET website.
Can I use 2 different themes based on the master page?
i'm developing a site using VS2010 and with my windows vista busniness OS. i used the default VS2010 wizard for new web application to create it. included a folder in the root directory and created new aspx pages to derive from the master page in the root directory of my site. everything shows on the new pages except the jpeg image logo in the master page. But other aspx pages i created in the root directory shows every thing fine.
View 1 RepliesCurrently I'm doing common functionality required throughout my site inside of my masterpage. What I want to do is move this functionality to a BaseClass so All my pages inherit from the Base Class. However, I'm not sure how to set this up interms of c# code with regards to Using a Base Class and then having a masterpage applied to my aspx pages that i create.
View 5 RepliesMy requirement was to share master files among diff projects i read this doc [URL] so i use this technique to share msster pages among my diff projects in a soln but i dnt know how to reference such shared master page as if i use such
<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="../masterPages/masterInvGen.Master"