【问题标题】:Proper way to hide place holders in a SharePoint 2007 Master Page?在 SharePoint 2007 母版页中隐藏占位符的正确方法?
【发布时间】:2012-05-25 20:47:20
【问题描述】:

我正在为客户开发一个专门的 MOSS 实例,我想做的是在母版页上隐藏元素。特别是,我想隐藏主顶部导航栏、搜索功能和显示在左上角的标签,告诉您您所在网站的名称。因此,我制作了 default.master 的副本,然后在 SP Designer 中,我在新的主文件中将这些块的占位符的可见属性设置为“false”。

然后我可以毫无问题地将母版分配给我的正常网站集,并且它似乎按我想要的方式工作。但是当我查看系统页面(即任何表单或后端的东西)时,它仍然使用旧的默认主页面。当我尝试将系统母版页设置为我的自定义主文件时,我的 MOSS 实例抛出了一个 File Not Found 错误。然后管理区域的某些部分开始以同样的方式失败(即我会尝试进入站点设置 -> 内容和结构,它也会抛出一个未找到文件的错误)然后在某一时刻,整个站点集合会抛出“未知错误”,似乎没有办法恢复,除了恢复我正在运行 MOSS 的 VM 的状态以用于开发目的。

所以我很好奇,创建自定义母版页然后在该页面上隐藏元素的最佳方法是什么?我意识到我的 Web 集群没有设置正确的标志来实际向我显示真正的 ASP 错误消息,所以我今晚回家时将更改它,看看 SP 真正告诉我所有这些。我还读到不建议更改 application.master 文件,但我认为我可以为站点和系统母版页制作自定义页面而不必担心 application.master。我一直在阅读一堆 Heather Solomon 的文章以及其他各种东西。他们基本上都说可以在母版页上隐藏元素,但不要直接删除它们,因为如果这样做,SP 会损坏。是否建议使用 JS/CSS hack 以这种方式手动隐藏元素,而不是实际制作新的母版页?

【问题讨论】:

    标签: sharepoint sharepoint-2007 master-pages placeholder


    【解决方案1】:

    您创建一个 asp:placeholder ,并将 visible 属性设置为 false 并将要隐藏在该容器中的 contentplaceholder 放置在该容器中,我知道这很奇怪,但它可以工作......至于 system.master 您可能想要制作SharePoint 使用的 system.master 的副本,然后以相同的方式更改该副本。

    【讨论】:

      【解决方案2】:

      非常感谢您发布此消息。奇迹般有效。我很害怕,因为每个人都说不要乱用 Application.Master。我所做的只是用记事本打开它并添加 Visible="false" (我想隐藏顶部导航栏,因为我有自定义选项卡,这些选项卡根据用户的权限显示,这些权限由 default.master 中的代码控制。但是如果用户必须上传文件,upload.aspx 使用 application.master 并且所有选项卡都会显示。)

      我只编辑了这一行:

      wssuc:TopNavBar id="IdTopNavBar" runat="server" ShouldUseExtra="true" Visible="false"
      

      像魅力一样工作!

      请注意,以下页面也会受到影响: 网站设置 查看所有网站内容 文档库的工作流设置 回收站 搜索结果

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-28
        • 1970-01-01
        • 1970-01-01
        • 2011-05-17
        • 2010-10-30
        • 1970-01-01
        相关资源
        最近更新 更多