Web Forms :: MasterPage - Setting Body Class Of ContentPage?
Aug 23, 2010
how to set the body class of a ContentPage when using master pages?
I want to set the body class so that certain elements of my page are styles differently from each other. e.g. Navigation links to so which is the current page.
I am trying to get value of a variable"offset" code behind of content page which is set from default.aspx through onload event from master page.But it gives null value every time. Here is my code.
From a content page i am assigning a css class to one of the list item.
HtmlGenericControl home = (HtmlGenericControl)this.Page.Master.FindControl("mainMenu").FindControl("mainManage") as HtmlGenericControl; string cssToApply = "current"; if (null != home) { if (home.Attributes.ContainsKey("class")) { if (!home.Attributes["class"].Contains(cssToApply)) { home.Attributes["class"] += " " + cssToApply; } } else { home.Attributes.Add("class", cssToApply); } } and my css, #header ul li { display:inline; float:left; } #header ul a { -x-system-font:none; color:#FFFFFF; display:block; font-family:Trebuchet MS,Arial,sans-serif; font-size:1.1em; font-style:normal; font-variant:normal; font-weight:bold; text-transform:uppercase; text-decoration:none; } #header ul a { -moz-border-radius:3px; -webkit-border-radius:0.2em; padding:3px 7px; text-decoration:none; } #header ul a:focus, #header ul a:active, #header ul a:hover { background-color:#829E7E; outline-color:-moz-use-text-color; outline-style:none; outline-width:medium; } #header ul a.home { margin:0 16px 0 17px; } #header ul #current a, #headermenu #current span{ /*currently selected tab*/ background-color: #BCE27F; color:#666666; white-space:nowrap; } #header ul a.manage,#header ul a.enquiry,#header ul a.report { margin:0 14px 0 0; } #home #header ul a.home, #enquiry #header ul a.enquiry, #report #header ul a.report, #manage #header ul a.manage{ -moz-border-radius:3px; -webkit-border-radius:0.2em; background-color:#B9E27F; color:#FFFFFF; }
But i get the error, System.Web.UI.AttributeCollection' does not contain a definition for 'ContainsKey' and no extension method 'ContainsKey' accepting a first argument of type 'System.Web.UI.AttributeCollection' could be found (are you missing a using directive or an assembly reference?
I'm looking to do a short term hack on a site. The site is a ASP.NET site with a master page. The body tag is in the master page. I'd like to specify which ID should be in the body tag from within various content pages. What I don't know is if you can have this type of access to the body tag when your JS is within the body tag. For various reasons, I'd like to try to accomplish this in JS, not .NET.
Rephrasing for clarity: I would like to use JavaScript to specify a body ID from within the body tag of a site. For example:
I have a masterpage with a timer that shows server time and refreshes every second, on the content page I have a chat program with ajax, refreshes every to second to get the last messages entered.
I have a Html TextBox and a hidden Submit Button, when user write a text, and hit the enter, I check to see if this is the enter key and then submit the message,it is working perfectly in IE, but in FireFox and Opera it show the same message twice. I think the problem is the Timer, is there any way to avoid the MasterPage timer in this particular content page?
We have a master page file in which we have a MenuControl. We are displaying some menus according to users credentials. We are handling MenuItemDataBound event inside master page for adding & removing menus.
There is user edit page{ContentPage} on which user may edit his own credentials. After saving the edited data {users credentials} by ASP.Net Button control, the MasterPage's MenuItemDataBound event doesn't fire (in case of refresh it is firing but in case of post back it is not firing).
We need to recreate/refresh MenuItems for master pages after saving the user and add/remove any nodes from Menus.
I am using a Masterpage for my upload_photo.aspx which displays the file upload page using colorBox. However, ever since i added (code below) in the Masterpage colorBox doesn't display:
I have a DateTime in my MasterPage.aspx that is outside of UpdatePanel1. There are two Hyperlink controls inside UpadatePanel1 to navigate or to move to the other pages. Full code of MasterPage.aspx is below.
[Code]....
If the user clicks Hyperlink to navigate or move to the other page, the DateTime will change. It means that my MasterPage.aspx render the whole page when the user clicks Hyperlink. I do not want this behavior. I want my MasterPage.aspx only render the ContentPage and the Hyperlink inside UpadtePanel1. Controls outside UpadtePanel1 like DateTime should not be rendered again. Please advise the code to achieve my example goal.
I'm successfully using a masterpage for all my .aspx's... the below is typical... where though can I place script such as this into my .aspx below since I don't really use a head/body?:
what can I use on a form that will hold images and text and can be sent as the body in an Email? For example, can I use a panel and add a table inside it and then organize text and images in the table and then use the panel as the body in the email?
I'm trying to write a way of setting the css class on the body tag in a master page from the content form page through a page directive variable. Everything seems like it should work here, however when I use my BodyCssClass variable, the page content isn't generated, just the master page content. Also, if instead of using the page directive variable, I just put <% BodyCssClass = "mybodyclass"; %> in default.aspx, that works.
[BasePage.cs] using System; using System.Data; using System.Configuration;
I'm using a CMS, which removes my ability to access the actual Page, I can only program Master pages. I need to set the Async property of the @Page directive on a particular page, but can't figure out how to do so from the Master page.
I've tried to get a list of the IDs of the controls, but when I try to access he ID field of control at index 0 I get a null reference exeption, even though the collection has a .Count == 5. Any clue why or if it can be done and how? I've tried this both in Page_Load and off a button_click event.
Assuming you need the ID to set the proper tab index via the control collection object, the following code should produce the list of the names of the 5 controls. The output is '01234' to the multiline textbox... (the values of x)
I need to let the user to choose their preferable language from links in masterpage, after clicking the link, they should see the same page with the language which they select.
And this setting is save to their profile.
Here are some problems that need to be solve.
1. master page don't have Profile, User object in it, Global.asx too don't have Profile object. How do I save and load setting from Profile?
2. How do I stay on the same page? LinkButton with postback?
I am trying to set history points for a form that posts to a second page. Both the first page and second page are content pages in a master page.The form is in an update panel and consists of several textboxes, one radiobutton group of two radiobuttons and one ajax calendar control. The last two textboxes are a zipcode box and a county box. The county box is populated from a database table when the user fills in the zipcode in a textbox and tabs out or clicks in the next textbox.
I have created a class within the App_Code called shared_methods.vb where I use methods that are frequently used within several pages.
I have a hyperlink control within the masterpage that i want to change the NavigateUrl depedning on what page. Just for better coding i would like to define the variable holding the hyperlink with my shared_method.vb.
I have:
Dim hl_back As HyperLink = CType(Master.FindControl("hl_master_back"), HyperLink)
This works within a page but not within shared_methods.
MyUserControl.ascx is being used in Content.aspx and is being added programatically. The content page is using MyMaster.Master
MyMaster.Master has a variable which I can access from Content.aspx as I have the @MasterType directive set. What I am wanting to do is the following:
1) Set a value in MyUserControl.ascx
2) Access value from Content.aspx
3) Set value in MyMaster.Master
Step 2 is implemented in the PageLoad of content.aspx as follows:
Control ucControl= LoadControl("/UserControls/MyUserControl.ascx"); UserControls_MyUserControl myUC = ucControl as UserControls_MyUserControl; [code]....
The PreRender handler just sets a value in MyMaster.Master to true. In MyMaster.Master I check that value in PageLoad and try display something if it is true. This does not work.I suspect it has something to do with the Page Lifecycle, but I cannot seem to find which part is wrong.
I am porting my simple Role Based Auth to ASP.NET. It requires this check on each page:
[Code]....
If put in each page's OnLoad, it works fine. But when I add it to the masterpage, it doesn't work. Is there something about the ServerVariables or Session Object that would prevent using those in a masterpage? Is it an issue calling my class from a materpage?
I've created a nice menu class and used it in my MasterPage like "using My.GeneralRoutines".This class is working well and everything is fine UNTIL I want to access this same instance of that class that was created at MasterPage level on "a_page.aspx.cs" (this page is using the MasterPage like :)