如何从子页面控制asp.net主页面上的元素

Llo*_*oyd 11 c# asp.net master-pages

我在asp.net网站上有几页我想关闭母版页上的控件.有没有办法从子页面与母版页进行通信?

Ahm*_*eed 18

最简单的方法是在主页面上设置一个属性,在调用时处理开/关功能.然后在您的子页面中设置MasterType指令以获取对母版页的强类型引用,以绕过强制转换的需要.

您的子页面将具有:

<%@ MasterType VirtualPath="~/Site1.Master" %>
Run Code Online (Sandbox Code Playgroud)

并调用母版页的属性:

Master.MyLabel = false; // or true
Run Code Online (Sandbox Code Playgroud)

所以对你的主人你可以:

public bool MyLabel
{
    get
    {
        return masterLabel.Enabled;
    }
    set
    {
        masterLabel.Enabled = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @Mark:最好不要公开母版页控件.如果母版页布局发生变化怎么办?只需公开属性,方法或事件. (3认同)

Mar*_*son 10

您需要在页面标记中使用MasterType指令

<%@ MasterType TypeName="Namespace.Etc.MyMasterPage" %>
Run Code Online (Sandbox Code Playgroud)

然后,您将能够使用访问页面主页面的任何公共属性

this.Master.PropertyIWantToIntefereWith...
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助