Web Forms :: Changing Nested Master Page Contents Form Content Page
Dec 23, 2010
Following is the structure of the pages in application
[Code]....
Suppose the user is on ..../paycheck.aspx which is the content page. But when ...../paycheck.aspx loads, "lnkDynamic" properties "Text and PostBackUrl" must be set. Which events should be handled .....
All I want to do is access the <body> element from the code-behind of a content page and add a class name to it.
I have a top-level master page with the <body> element in it. Then I have a nested master page which is the master page for the content page. From the code behind of the content page I want to add a class name to the body element. That's all.
I have this in the top-level master:
<body id="bodyNode" runat="server">
I added this to the code-behind for the content page:
In master page I am using asp content place holder. And in my child page I am using pure html coding. When I attach master page in my child page I am getting this error.Content controls have to be top-level controls in a content page or a nested master page that references a master page.
My Master Page has a heading with tabs. The code looks something like:
<CT:Tab ID="tabHome" runat="server" Url="/index.aspx" Text = "Home" Highlight="true" /> <CT:Tab ID="tabFun" runat="server" Url="/fun.html" Text = "Fun"/> <CT:Tab ID="tabBlog" runat="server" Url="/blog" Text = "Blog"/>
I can think of two ways to control which tab is highlighted from within a user control:Have the user control implement an interface. The master page can decide which tab to highlight based on which interface is implemented, or based on a method in the interface that returns a string.In the Page_Load (or Page_Init) function, tell the master page (via FindControl or via a function in the Master Page) which control to highlight.I don't really like either of these solutions. Is there a clean way I could control which tab is highlighted from the control at design time (i.e., in the aspx file)?
I have a master page with a form on it. It's a people search form. When the user clicks on the search button it goes to the search results page that uses the same master page. With the code below I get the info off the master of the current page. Howdo I grab that info from the first page? Here's the code:
Imports System Imports System.Web.UI Imports System.Web.UI.WebControls Partial Class mstrIntranet Inherits System.Web.UI.MasterPage Public Property mSearchName() Get Return txtSearchName.tex End Get Set(ByVal value) txtSearchName.text = value End Set End Property
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load txtSearchName.Text = "People Search" End Sub End Class
Search Results Code Behind page:
Partial Class PeopleSearch2 Inherits System.Web.UI.Page Public SearchName As String
Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim mpTextbox As TextBox mpTextbox = CType(Master.FindControl("txtSearchName"), TextBox) SearchName = mpTextbox.Text
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.
How to I put this form on my page? The problem is I have a master page which wraps the content pages content in the ASP.net form, I can't nest the forms.
This is the content in the master page as you can see there are 4 menu items i tried to form as sidebar and i tried to inherit in home.aspx(one of the content pages) as follows:
But unfortunately the sidebar is not at all getting displayed. I know i'm doing fundamentally wrong some where. My intention is to have web pages to have sidebar like this. It is a screenshot of my intended page.
My project has the following repeater menu shown on the Master Page. I need this menu to remain hidden until the user logs in. How do I access from content page?
I'm trying to dynamically change the look of my main master page depending on what nested master page that the current content page is using .
So for example.
Main master page = main.master My nested page = nested.master (uses main.master) content page = content.aspx (uses nested.master)
So in the Page_Load event of main.master I want to add a switch statement that will check to see what nested master page is currently being used by content.aspx, or whatever content page is loaded.
So far I have got
protected void Page_Load(object sender, EventArgs e) { string nMaster = //This is the line of code that I am looking for. switch(master) { case "nested.master": //all my logic here. break; } }
I am using Master page and Content page combination.But how can i access <body> tag and it's event (onload, onunload) of Master page in .aspx page that is not a content page.
I have a master page homeMaster.aspx and many content pages. However the situation is I have few .html pages. Now when a user clicks on a link the html page should get loaded.inside the master page. The problem is these are .html and not content page with .aspx.
I have a master page setup that is used throughout my site that is basically a header with a menu. I recently added a textbox and a button to this master page which is to be a quick search box that is available anywhere in the site. When a user enters text into the search box and hits the button, I need to load the actual content page which is used to search and show search results (which also uses this same master page), and have the text entered available so the search can be triggered automatically. Again, this search text box and button is now in my master page so it could be triggered from anywhere in the app... it serves as a convenient way to do a basic search from anywhere in my app, without having to first navigate to the actual 'search page' that already exists. You can also navigate to the actual search page, which uses the same master page, where there is many more search options.I'm thrown off by the master page arrangement, which I have not used until this project. What do I do?
I am having asp:hyperlinks in my master page, which i use as my page headers. I would just like to change the text format of the hyperlink when a content page is loaded.
the CS code for accessing the master page contents from content page?
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 survey, where you have to click through several pages with questions. I use a "Next" and a "Previous" button for doing this. I use a session for keeping tabs on my position. However, this is a problem.
I use the button_click event to increment the page counter, but since this fires after the page_load event, nothing happens on the first click, and for every click thereafter everything is one page behind because the questions are rendered before the counter is incremented.
Is there any way to solve this without using the query-string?
Comment response 10:15:
My understanding is that the following happens:
The first page loads and the counter is not set. The counter is set to 1. The first page is displayed. The user clicks the "Next" button, firing a postback. The page loads, displaying the same set of questions, because the counter is still on 1. The buttons Click-event is run, incrementing the counter. However, the page is still displaying the old questions.
After this everything is one page behind because the questions are rendered before the click-event is fired, incrementing the page counter.
Can I ask what this error refers to, (I have had it twice now over the last couple of days and then it goes away):
System.Web.HttpException: Content controls are allowed only in content page that references a master page.
This is followed by Stack Trace:
[HttpException (0x80004005): Content controls are allowed only in content page that references a master page.] System.Web.UI.MasterPage.CreateMaster(TemplateControl owner, HttpContext context, VirtualPath masterPageFile, IDictionary contentTemplateCollection) +9744256 System.Web.UI.Page.get_Master() +55 System.Web.UI.Page.ApplyMasterPage() +14 System.Web.UI.Page.PerformPreInit() +51 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1104
I am not using any Content Place Holder or Master Page (does the error refer to the Site.Master file because while I can see it in. Solution Explorer, I never use it. All of my aspx files look like this along the top with no reference to Site.Master: