findcontrol()方法可以在内容页中修改母板页中控件的属性。它根据控件的唯一的ID在命名容器中查找控件。此方法返回对控件的引用。
代码示例:
<%@ Master Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<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-bottom:solid 1px blue;
}
</style>
<title>Find Master</title>
</head>
<body>
<form id="form1" runat="server">
<div class="content">
<h1><asp:Literal ID="ltlBodyTitle" runat="server" /></h1>
<asp:contentplaceholder
id="ContentPlaceHolder1"
runat="server" />
</div>
</form>
</body>
</html> |
<%@ Page Language="C#" MasterPageFile="~/FindMaster.master" %>
<script runat="server">
void Page_Load()
{
if (!Page.IsPostBack)
{
Literal ltlBodyTitle = (Literal)Master.FindControl("ltlBodyTitle");
ltlBodyTitle.Text = "the title";
}
}
</script>
<asp:Content
ID="Content1"
ContentPlaceHolderID="ContentPlaceHolder1"
Runat="Server">
Content, Content, Content, Content
<br />Content, Content, Content, Content
<br />Content, Content, Content, Content
<br />Content, Content, Content, Content
<br />Content, Content, Content, Content
</asp:Content>
|
暴露母板属性修改:
<%@ Master Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <script runat="server">
public string BodyTitle
{
get { return ltlBodyTitle.Text; }
set { ltlBodyTitle.Text = value; }
}
</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-bottom:solid 1px blue;
}
</style>
<title>Property Master</title>
</head>
<body>
<form id="form1" runat="server">
<div class="content">
<h1><asp:Literal ID="ltlBodyTitle" runat="server" /></h1>
<asp:contentplaceholder
id="ContentPlaceHolder1"
runat="server" />
</div>
</form>
</body>
</html>
|
<%@ Page Language="C#" MasterPageFile="~/PropertyMaster.master" %>
<%@ MasterType VirtualPath="~/PropertyMaster.master" %>
<script runat="server">
void Page_Load()
{
if (!Page.IsPostBack)
{
Master.BodyTitle = "The Body Title"; }
}
</script>
<asp:Content
ID="Content1"
ContentPlaceHolderID="ContentPlaceHolder1"
Runat="Server">
Content, Content, Content, Content
<br />Content, Content, Content, Content
<br />Content, Content, Content, Content
<br />Content, Content, Content, Content
<br />Content, Content, Content, Content
</asp:Content>
|