c#从子页面访问母版页面元素

时间:2013-08-22 10:26:37

标签: c# asp.net .net

我在网上看过几个例子,但似乎没有一个适合我。

我要做的就是从主页标题中访问标签的内容。

这是我的......

内容页面上的标签

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

MasterPage上的一个名为“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" %>

如果有人可以提供帮助,我会很感激。

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

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

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";

OR

string test= Master.LabelText;

答案 2 :(得分:1)

固定..

这是因为我从Windows登录名中提取用户名的代码正在母版页的页面加载中运行。

所以我把它移到了

public void master_Page_PreLoad(object sender, EventArgs e)

部分,然后就可以了。

所以它一定是一直在努力,但正在穿过一片空地。

由于