如果我想使用常规母版页进行新的页面布局,除了我不希望主导航菜单控件(第三方控件)可见之外,如何让页面布局隐藏它?在asp.net中,我会在母版页上公开一个公共属性或方法,然后从子页面调用它,但不确定在SharePoint中可以做什么,因为没有代码隐藏或可识别的母版页类。
答案 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事件处理程序中修复了该问题。如果有更好的方式,我会全力以赴。