• 获取母版页的相关内容有两种方法 --全了


    获取母版页的相关内容有两种方法

    1 通过findcontrol找控件ID
    需要在此事件中~因为Page_load中时是先内容页加载然后才是母版页加载
        protected void Page_LoadComplete(object sender, EventArgs e)
        {
            Label2.Text = "现在时间是" + (Master.FindControl("Label1") as Label).Text;
            if (Request.QueryString["id"] == "dy")
            {
                (Master.FindControl("Image1") as Image).ImageUrl = "~/Images/ml0069.jpg";
            }
        }

    2 通过强引用

    <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" CodeFile="Default2.aspx.cs" Inherits="Default2" Title="Untitled Page" %>
    <%@ MasterType VirtualPath="~/MasterPage.master" %>

    然后可以在母版页中定义公共属性或方法
    public string GetUserName()
        {
            return Page.User.Identity.Name;
        }
    在内容页中调用
    Label1.Text = "欢迎光临" + Master.GetUserName();




    一、使用FindControl方法获取母版页控件的引用
    利用内容页page对象的Master公共属性,我们可以实现对关联母版页的引用。进而使用母版页的FindControl方法来实现对母版页控件的访问。
    母版页MasterPage.master:

    < %@ Master Language="C#" CodeFile="MasterPage1.master.cs" Inherits="MasterPage1" %>

    < !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>母版页< /title>
    < /head>
    < body>
        < form id="form1" runat="server">
        < asp:Label runat="server" ID="masterlabel">母版页的内容< /asp:Label>
        < div>
            < asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
            < /asp:contentplaceholder>
        < /div>
        < /form>
    < /body>
    < /html>

    内容页Content1.aspx:

    < %@ Page Language="C#" MasterPageFile="~/MasterPage1.master" CodeFile="content1.aspx.cs" Inherits="content1" Title="Untitled Page" %>
    < script runat="server">
        void Page_LoadComplete(Object sender, EventArgs e)
        {
            contentlabel.Text = (Master.FindControl("masterlabel") as Label).Text;
        }
    < /script>
    < asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    < asp:Label ID="contentlabel" runat="server">这里将显示母版页masterlabel控件的内容。< /asp:Label>
    < /asp:Content>
    其中,“Page_LoadComplete”是内容页面加载完成时触发的一个事件。
    运行结果:

    二、使用MasterType指令获取母版页控件的引用
    相对于上面的FindControl方法而言,MasterType显得很直接。通过使用MasterType,可以创建与母版页的强类型引用。

    将FindControl方法例子中的MasterPage.master更改如下:

    < %@ Master Language="C#" CodeFile="MasterPage1.master.cs" Inherits="MasterPage1" %>
    < script runat="server">
        public Label MasterPageLabel//注意:将母版页label控件强类型化,方便内容页访问。对母版页属性的访问也使用该方法。
        {
            get#p#分页标题#e#
            {
                return masterlabel;
            }
            set
            {
                masterlabel = value;
            }
        }
    < /script>
    < !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>母版页< /title>
    < /head>
    < body>
        < form id="form1" runat="server">
        < asp:Label runat="server" ID="masterlabel">母版页的内容< /asp:Label>
        < div>
            < asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
            < /asp:contentplaceholder>
        < /div>
        < /form>
    < /body>
    < /html>

    将FindControl方法例子中的Content1.aspx更改如下:

    < %@ Page Language="C#" MasterPageFile="~/MasterPage1.master" CodeFile="content1.aspx.cs" Inherits="content1" Title="Untitled Page" %>
    < %@ MasterType VirtualPath="~/MasterPage1.master" %>
    < script runat="server">
        new void Page_Load(Object sender, EventArgs e)
        {     

            contentlabel.Text = Master.MasterPageLabel.Text;
        }
    < /script>
    < asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    < asp:Label ID="contentlabel" runat="server">这里将显示母版页masterlabel控件的内容。< /asp:Label>
    < /asp:Content>

  • 相关阅读:
    2js中的变量的数据类型
    hdu 1022火车进出站问题
    hdu 2412树形dp
    hdu2955 Robberies(java)
    IDEA导入HttpServlet包
    IDEA导入jar包
    Java工程打包成jar可执行文件
    Java基础笔记(一)——JDK、JRE、JVM
    正整数构成的线性表存放在单链表中,编写算法将表中的所有的奇数删除。(C语言)
    已知单链表的数据元素为整型数且递增有序,L为单链表的哨兵指针。编写算法将表中值大于X小于Y的所有结点的顺序逆置。(C语言)
  • 原文地址:https://www.cnblogs.com/chenmfly/p/4390505.html
Copyright © 2020-2023  润新知