Introduction
There is very good feature available in Visual Studio that we can expose
properties and methods from a Master Page and modify the properties and methods
from a particular content page. For example, the Master Page given below
includes a public property named BodyTitle.
Master Page File Code
<%@
Master Language="VB"
%>
<!DOCTYPE
html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script
runat="server">
Public
Property MasterBodyTitle()
As String
Get
Return
ltlMasterBodyTitle.Text
End Get
Set(ByVal
Value As String)
ltlMasterBodyTitle.Text = Value
End Set
End
Property
</script>
<html
xmlns="http://www.w3.org/1999/xhtml">
<head
id="Head1"
runat="server">
<style
type="text/css">
html
{
background-color:silver;
}
.content
{
margin:auto;
width:700px;
background-color:white;
padding:10px;
}
h1
{
border:3px
dotted blue;
}
</style>
<title>Master
Page Properties Exposing</title>
</head>
<body>
<form
id="form1"
runat="server">
<div
class="content">
<h1><asp:Literal
ID="ltlMasterBodyTitle"
runat="server"
/></h1>
<asp:ContentPlaceHolder
id="ContentPlaceHolder1"
runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
Default.aspx File Code
<%@
Page Title=""
Language="VB"
MasterPageFile="~/MasterPage.master"
%>
<script
runat="server">
Protected
Sub Page_Load(ByVal
sender As Object,
ByVal e As
System.EventArgs)
If Not
Page.IsPostBack Then
Master. MasterBodyTitle=
"The Body Title"
End
If
End Sub
</script>
<asp:Content
ID="Content2"
ContentPlaceHolderID="ContentPlaceHolder1"
Runat="Server">
There is some data for the page.
</asp:Content>
We can notice several things in above codes. First, notice that we can refer to
the Master Page by using the Master property. In the Page_Load() method in
Default.aspx file code. The MasterBodyTitle property of the Master Page is
assigned a value with the following line of code:
Master.MasterBodyTitle =
"The Body Title"
We also notice that Master Page File includes a <%@ MasterType %> directive.
This directive automatically casts the value of the Master property to the type
of the Master Page. In other words, it casts the Master Page to the
PropertyMaster type instead of the generic MasterPage type. If we want to be
able to refer to a custom property in a Master Page, such as the MasterBodyTitle
property, then the value of the Master property must be cast to the right type.
The MasterBodyTitle property is not a property of the generic MasterPage class,
but it is a property of the PropertyMaster class.
HAVE A GREAT CODING!