1

我正在为客户开发一个专门的 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 以这种方式手动隐藏元素,

4

2 回答 2

2

You create an asp:placeholder with the visible attribute set to false and place the contentplaceholders that are to be hidden in that container, weird I know but it works... as for the system.master you probably would want to make a copy of the system.master that SharePoint uses and then alter that one in the same manner.

于 2009-09-25T14:38:11.683 回答
1

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

我只编辑了这一行:

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

奇迹般有效!

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

于 2011-02-24T22:49:14.237 回答