Using Find Control (alternative of Master Page Properties Exposing) in ASP.NET
Introduction
Download
Download
I have already discussed about Master Page Properties Exposing in my previous article, in that article we have
already discussed how to modify a property of a control located in a Master
Page from a content page by exposing a property from the Master Page. We have
an alternative here by using Find Control with Master Page. If we need to modify
a control in a Master Page, we can use the FindControl() method in a content
page. For example, the Master Page given below includes a Literal control named
MasterBodyTitle. This Master Page does not include any custom properties by
default.
Master Page Code
<%@ Master Language="VB" %>
Master Page 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
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>Using Find Control with Master Page</title>
</head>
<body>
<form id="form1" runat="server">
<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>Using Find Control with Master Page</title>
</head>
<body>
<form id="form1" runat="server">
<div class="content">
<h2><asp:Literal ID="ltlMasterBodyTitle" runat="server" /></h2>
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
Default.aspx Code
<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage.master" %>
</div>
</form>
</body>
</html>
Default.aspx 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
Dim ltlMasterBodyTitle As Literal
If Not Page.IsPostBack Then
Dim ltlMasterBodyTitle As Literal
= CType(Master.FindControl("ltlMasterBodyTitle"), Literal)
ltlMasterBodyTitle.Text = "This title is from content page
ltlMasterBodyTitle.Text = "This title is from content page
(this is from content page for Master Page)."
End If
End Sub
</script>
End If
End Sub
</script>
<asp:Content ID="Content2"
ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
There is some data for the page body (this is from content page).
</asp:Content>
The FindControl() method enables us to search a naming container for a control with a particular ID. The method returns a reference to the control.
There is some data for the page body (this is from content page).
</asp:Content>
The FindControl() method enables us to search a naming container for a control with a particular ID. The method returns a reference to the control.
great post !!
ReplyDeletethanks
Delete