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

时间:2013-03-06 18:25:27

标签: sharepoint sharepoint-2007

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

1 个答案:

答案 0 :(得分:0)

我让它像这样工作,但我不喜欢这个实现。

在母版页上:

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

<script runat="server">
    public bool IsConsumerNavVisible
    {
        set
        {
            myMenu.Visible = value;
        }
    }
</script>

在PageLayout上:

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

所以我在母版页上公开了一个公共属性来设置可见性,然后在PageLayout上使用反射来查找&amp;设置该属性。我尝试将PageLayout代码放在&lt; %%&gt;中脚本块和它执行但菜单最终仍然可见。将它放在Page_Load事件处理程序中修复了该问题。如果有更好的方式,我会全力以赴。