c#从子页面访问MasterPage元素

本文关键字:访问 MasterPage 元素 | 更新日期: 2023-09-27 18:28:40

我在网上看了几个例子,但似乎都不适合我

我所要做的就是从母版页标题访问标签的内容。

这是我的。。

内容页面上的标签

<asp:Label ID="StaffUserName" runat="Server" />

主页上名为"ThisLoginName"的标签

    <header>
        <div class="content-wrapper">
            <div class="float-left">
                <p class="site-title">
                    <a runat="server" href="~/">Home</a>
                </p>
            </div>
            <div class="float-right">
            <section id="login">
                Welcome! <b><asp:Label ID="ThisLoginName" runat="server" /></b>
            </section>
            <nav>
                <ul id="menu">
                    <li><a runat="server" href="~/">Home</a></li>
                    <li><a runat="server" href="~/Admin">Admin</a></li>
                </ul>
            </nav>
        </div>
    </div>
</header>

我在网上读了一些教程,但我似乎无法解决这个问题。然而,我确实在我的内容页面的顶部有这个

<%@ MasterType VirtualPath="~/Site.Master" %>

如果有人能帮忙,我将不胜感激。

c#从子页面访问MasterPage元素

我认为这正是您所需要的。http://www.aspdotnet-suresh.com/2012/06/access-master-page-control-from-content.html

您需要在母版页类中添加公共属性

public string LabelText 
{ 
get { return StaffUserName.Text; } // StaffUserName is the ID of your LABEL
set { StaffUserName.Text = value; } 
} 

看到你添加了:<%@ MasterType VirtualPath="~/Site.Master" %>,所以在你的内容页面中访问这个:

Master.LabelText = "MyText";

string test= Master.LabelText;

已修复。。

这是因为我从windows登录中提取用户名的代码是在主页中的页面加载时运行的。

所以我把它移到

public void master_Page_PreLoad(object sender, EventArgs e)

部分,然后它就工作了。

因此,它一定一直在工作,但它正在穿过一片空地。

感谢