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> |