Sharepoint:隐藏发布页面中的字段

时间:2010-11-19 09:08:34

标签: sharepoint

我有一个来自PublishingLayoutPage的页面布局。在其中指定了许多字段 - 内容可以在这里看到:http://pastebin.com/L4fmc3qb

但是,我只希望在页面上的编辑表单中显示其中两个字段(SendSMSSendEmail),而不是在将其视为页面时。如何在显示的页面上隐藏这些字段?

或者,有没有办法将这两个字段“注入”到页面中并用项目事件捕获它们?目前,这些字段已添加到页面使用的内容类型中,并且我使用项目事件接收器来查看它们是否已被检查,但是如果有另一种方法可以执行此操作,那么也很好。

4 个答案:

答案 0 :(得分:3)

在Sharepoint 2010中,您可以使用常规CSS执行此操作(我确信它也适用于2007,但我现在没有要测试的系统) - 或检查答案的第二部分< /强>

当您处于编辑模式时,首先必须加载一个特殊的CSS文件:

<PublishingWebControls:EditModePanel runat="server" id="editmodestyles">
        <!-- Styles for edit mode only-->
        <SharePoint:CssRegistration name="<% $SPUrl:~sitecollection/Style Library/~language/Core Styles/edit-mode.css %>"
            After="<% $SPUrl:~sitecollection/Style Library/~language/Core Styles/normal.css %>" runat="server"/>
    </PublishingWebControls:EditModePanel>

如果你现在有这样的课程,例如hideMeFromPage您可以将其添加到normal.css:

.hideMeFromPage {
    display:none;
}

在edit-mode.css中,您现在可以像这样覆盖此属性:

.hideMeFromPage {
    display:block !important; //important, just to make sure even though it is loaded after the original declaration ;-)
}

您只需将该样式添加到<div class="byline hideMeFromPage">并添加自定义编辑CSS,就可以了。

<小时/> 修改:愚蠢的我......当然,你也可以按MSDN所述的EditModePanel标签或者一个非常好的示例页面对你的字段进行更多关于页面的纠结布局:

  

检查先前的对照   用户建立的权限   是否应该显示内容,   EditModePanel看看是否   当前页面正在显示或编辑   模式。这非常有用   WCM世界展示帮助   消息或其他内容给用户   他们编辑一个页面。但是有   其他用途 - 隐藏导航,添加   内联CSS覆盖要使用的类   不同的格式(特别是   有用)并发出调试信息   在HTML输出中都是例子。   通过Great Controls to be aware of when building Sharepoint sites

使用示例:

<PublishingWebControls:EditModePanel SuppressTag="false" GroupingText="Title help" PageDisplayMode="Edit" runat="server" id="EditModePanel1">
    ~~Your fields go in here~~
</PublishingWebControls:EditModePanel>

答案 1 :(得分:0)

通常只需从sharepoint designer中的页面布局控件中删除字段或自定义页面布局定义即可。字段定义实际上是内容类型的一部分,因此如果有人要编辑页面属性,他们应该看到定义的字段。但是从页面布局上的页面字段中删除它会使其远离渲染。


编辑:完全忘记了EditModePanel控件

http://www.andrewconnell.com/blog/archive/2006/12/23/5535.aspx

答案 2 :(得分:0)

您可以使用标记

限制仅在编辑模式下显示的任何内容
Sum sum;
Sum *pointerToSum = &sum;
initialize(pointerToSum);
addition(pointerToSum);

答案 3 :(得分:0)

将您的<SharePointWebControls>标记放在<PublishingWebControls:EditModePanel>之间

示例

<PublishingWebControls:EditModePanel runat="server">
        <SharePointWebControls:FieldProperty FieldName="Article Expired Date" PropertyName="Description" runat="server" />
</PublishingWebControls:EditModePanel>