如果用到MastePage.有时候我们需要在开发过程中在ContentPage访问masterpage中属性思路方法或者Control控件信息这个Demo介绍说明了如何来实现这样作业>
其实很简单关键步是要在contentpage中“声明”对masterpage"引用":
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="contentpage1.aspx.cs" Inherits="contentpage1" %>
<%@ MasterType VirtualPath ="~/MasterPage.master" %> <%--在这里声明--%>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
</asp:Content>
然后在contentpage中就可以访问masterpage public属性和思路方法以及其Control控件.
masterpage HTML:
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
<!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>My MasterPage Title</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lblheader" runat="server" Text="Label"></asp:Label>
<br />
<asp:TextBox ID="txt" runat="server"></asp:TextBox>
</div>
<div>
<asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
</asp:contentplaceholder>
</div>
</form>
</body>
</html>
masterpage CS:
public partial MasterPage : .Web.UI.MasterPage
{
private title;
public Title
{
get { title; }
{ title = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
this.lblheader.Text = title;
}
public void GetTitle
{
txt.Text = "i will go";
}
}
在masterpage中定义了个属性个思路方法
contentpage:
protected void Page_Load(object sender, EventArgs e)
{
Page.Header.Title = "masterpage title here";
Master.Title = "Access To masterPage's property";
Master.GetTitle;
TextBox txt= Master.FindControl("txt") as TextBox;
txt.BackColor = .Drawing.Color.Red;
}
可以看到无论是属性,思路方法,Control控件都是可以访问.
最新评论