Sharepoint 允许页面布局隐藏母版页上的控件

Sharepoint 允许页面布局隐藏母版页上的控件,sharepoint,sharepoint-2007,Sharepoint,Sharepoint 2007,如果我想将常规母版页用于新的页面布局,除非我不希望主导航菜单控件(第三方控件)可见,否则如何让页面布局隐藏它?在asp.net中,我会在母版页上公开一个公共属性或方法,然后从子页调用它,但不确定在SharePoint中可以做什么,因为没有代码隐藏或可识别的母版页类。我让它这样工作,但我不喜欢它的实现 在母版页上: ... <c:Menu id="myMenu" runat="server" /> ... </for

如果我想将常规母版页用于新的页面布局,除非我不希望主导航菜单控件(第三方控件)可见,否则如何让页面布局隐藏它?在asp.net中,我会在母版页上公开一个公共属性或方法,然后从子页调用它,但不确定在SharePoint中可以做什么,因为没有代码隐藏或可识别的母版页类。

我让它这样工作,但我不喜欢它的实现

在母版页上:

...
            <c:Menu id="myMenu" runat="server" />
            ...
        </form>
    </body>
</html>

<script runat="server">
    public bool IsConsumerNavVisible
    {
        set
        {
            myMenu.Visible = value;
        }
    }
</script>
。。。
...
公共场所是可以看到的
{
设置
{
myMenu.Visible=值;
}
}
页面布局:

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        System.Reflection.PropertyInfo pi = Page.Master.GetType().GetProperty("IsConsumerNavVisible");
        pi.SetValue(Page.Master, false, null);
    }
</script>

受保护的无效页面加载(对象发送方、事件参数e)
{
System.Reflection.PropertyInfo pi=Page.Master.GetType().GetProperty(“IsConsumerAvvisible”);
pi.SetValue(Page.Master,false,null);
}
因此,我在母版页上公开了一个公共属性来设置可见性,然后使用PageLayout上的反射来查找和设置该属性。我试着将PageLayout代码放在一个脚本块中并执行了它,但菜单最终还是可见的。将它放在页面加载事件处理程序中修复了这一问题。如果有更好的办法,我洗耳恭听