Goals
Masterpages are keys in constructing websites in asp.net. They provide the background for a website such as the top banners, left hand navigation, footer etc. In this exercise you will need to
- Create a basic empty website
- create a main master page (banner, left hand menu, footer)
- create a web page that will use that master page
- Create a child/nested master page (provide a page menu on the right)
- create a web page that uses the nested master
Create a basic empty website
- Start from scratch
- create a new website application using visual studio.net
- create a subfolder under root called "master" to hold the master pages
- under master create a master page using "new item" on that folder called "MainMasterPage"
- At this time you wont be able to test anything yet
create a main master page (banner, left hand menu, footer)
- switch to the source view of the master page
- create an html table with html table directives
- Put a css class on this table called "main-layout-table"
- Provide three rows and 1 column in the table
- top row will be your banner
- middle row will be your body
- bottom row will be your footer
- In the top row use an h1 for entering a title
- In the bottom row enter "footer" as text
- In the second or middle row put another table and give it a class of "body-layout-table"
- Provide 1 row and 2 columns in the table
- 1st column will be 15% and 2nd column will be 85%
- In the first column put plain text called "left hand menu" goes here
- In the second coulmn put an asp.net control called contentplace holder and give it an id called "pagecontent"
create a web page that will use that master page
- Create a sub folder called "test" under root to hold the web pages to test the master pages
- Create a new web page called testMainMasterPage.aspx
- Go to the source view of the page (not the code behind) but the code that contains the asp tags
- In the header of the page indicate that this page uses the main master page
- Delete the rest of the content of the page as vs.net would have created some sample tags
- Put a content control to satisfy the content place holder specified in the master page
- Insdie the content control tags put a hello world text
- In a web page that is refering the master page all html content should be inside a content tag
- Compile/build the solution
- Set this page as the start page of the website and run with out debugging
- You should see your hello world displayed in the body portion of the page
Create a child/nested master page (provide a page menu on the right)
- Goal of this exercise is to provide a page menu on the right hand side of the content
- Create another masterpage in the "master" subfolder called NesterMasterPage.master
- Create a content tag satisfying the contract of the main master page
- Inside this content tag create a table with 1 row and 2 columns
- column1 will be 80% and column2 will be 20%
- In column1 put a content place holder and call it "PageContent"
- In coulmn2 put a content place holder and call it "PageMenuContent"
Create a web page that uses the nested master
- Create a test page for this under test subdirectory and call it testNestedMasterPage.aspx
- Associate this page to the NestedMasterPage.aspx
- Create two content tags one for "PageContent" and the other "PageMenuContent"
- In the "PageContent" tag say "hello world Page"
- In the "PageMenuContent" tag say "hello world Page Menu"
- Build the solution
- Test it
- You should see content displayed in the page content cell and also in the page menu content cell.
Conclusion
Deliverables
- master/MainMasterPage.master
- master/NesterMasterPage.master
- test/testMainMasterPage.aspx
- test/testNestedMasterPage.aspx
Answer: master/MainMasterPage.master
Answer: master/NesterMasterPage.master
Answer: test/testMainMasterPage.aspx
Answer: test/testNestedMasterPage.aspx
satya - Wednesday, May 23, 2007 4:54:27 PM
Here are some basics on master pages
satya - Wednesday, May 23, 2007 5:00:41 PM
Idea for a MainMasterPage.master
<%@ Master Language="C#"
AutoEventWireup="true"
CodeFile="MainMasterPage.master.cs"
Inherits="MainMasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table class="main-layout-table">
<tr><h1>Header</h1></tr>
<tr>
<table>
<tr><td width="15%">leftmenu</td>
<td width="85%">
<asp:contentplaceholder id="PageBody" runat="server"/>
</td>
</tr>
</table>
</tr>
<tr>footer</tr>
</table>
</asp:contentplaceholder>
</div>
</form>
</body>
</html>