ASP.NET母版页

ASP.NET母版页;主要是设置一致界面的页面,在固定的页中进行更新。

如图1-1所示

页头

页中(页内容)

页尾

1-1  母版页

一般网页是固定页头和页尾,只更新页内容,来实现网页的跳转或内容的更新。其实控件iframe a  也可以实现这样的功能。

例如:

<iframe  name="if"></iframe>//在iframe控件里面更新或跳转不同网页。

<a target="if" href="ww.aspx">跳转</a>//点击“跳转”,就可以将ww.aspx网页内容获取到,添加到name为“if”的控件里。

注意:这里实现页面跳转。则需要添加许多的<a> ,则会导致代码重复,并且效果界面没有母版页好。

母版页和嵌套在母版页中的web窗体对应关系。即注意:“MasterPageFile”。相当于,孩子为大,母亲听话。你有,我改。设母版页(母亲)内容为,表头,表尾,表中(ID命名随意)。当嵌套在母版页的web窗体(孩子)里面有对应的ContentPlaceHolderID 的值为母版页的ID 值时,则显示的内容会改变。例如,下面代码显示结果为:表头 改 表尾(即母亲的值更改了,听了孩子的话 ,将“表中”改为“改”)

母版页:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="myM.master.cs" Inherits="母版页.myM" %>

嵌套在母版页中的web窗体:

<%@ Page Title="" Language="C#" MasterPageFile="~/myM.Master" AutoEventWireup="true" CodeBehind="ww.aspx.cs" Inherits="母版页.ww" %>

母版页

<asp:ContentPlaceHolder ID="head" runat="server">

                       表头

</asp:ContentPlaceHolder>

<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

                       表中

</asp:ContentPlaceHolder>

<asp:ContentPlaceHolder ID="ContentPlaceHolder2" runat="server">

                       表尾

</asp:ContentPlaceHolder>

                                             表头

        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

                                           表中

        </asp:ContentPlaceHolder>

                                           表尾

嵌套在母版页中的web窗体

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

</asp:Content>

访问母版页的控件和属性

使用Master.FindControl方法访问母版页上的控件

比如:窗体要获取母版页上某一控件的内容,如下代码。

母版页:

 <asp:Label ID="Label1" runat="server" Text="母版页Label控件内容"></asp:Label>

嵌套在母版页中的web窗体:

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

嵌套在母版页中的web窗体获取窗体控件内容:

<asp:Label ID="la1" runat="server"></asp:Label>

</asp:Content>

Label tt =(Label)this.Master.FindControl("Label1");//获取母版页Label控件IDLabel1的内容

this.la1.Text = tt.Text;

 

引用@MasterType指令访问母版页的上的属性

可以在窗体内容页上更改母版页的属性

母版页:

<asp:Label ID="Label1" runat="server" Text="母版页Label控件内容:"></asp:Label>

<%=this.Mvalue%>//将后台的Mvalue赋值在前台界面

  public string mvalue = "原值";

        public string Mvalue

        {

            get {return mvalue ;}

            set {mvalue=value;}

        }

嵌套在母版页中的web窗体:

<%@ MasterType  VirtualPath="~/myM.Master" %>(代码头上添加,设置VirtualPath 值为对应的母版页路径。)

Master.Mvalue = "hello !";//后台更改母版页的Mvalue的值。

 

原文地址:https://www.cnblogs.com/anyihen/p/5450824.html