Asp.net 2.0 在contentPage中访问MasterPage



如果用到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控件都是可以访问.
Tags: 

延伸阅读

最新评论

发表评论