Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sharepoint:从发布页面隐藏字段_Sharepoint - Fatal编程技术网

Sharepoint:从发布页面隐藏字段

Sharepoint:从发布页面隐藏字段,sharepoint,Sharepoint,我有一个页面布局,它来自发布布局页面。其中指定了许多字段-可以在此处看到内容: 但是,其中两个字段(SendSMS和sendmail)我只希望显示在页面的编辑表单上,而不是在将其作为页面查看时显示。如何在显示的页面上隐藏这些字段 或者,有没有办法将这两个字段“注入”到页面中,并用一个item事件捕获它们?目前,这些字段已添加到页面使用的内容类型中,我使用项目事件接收器查看它们是否已被检查,但如果有其他方法也可以。在Sharepoint 2010中,您可以使用常规CSS执行此操作(我确信它也适用于

我有一个页面布局,它来自
发布布局页面
。其中指定了许多字段-可以在此处看到内容:

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


或者,有没有办法将这两个字段“注入”到页面中,并用一个item事件捕获它们?目前,这些字段已添加到页面使用的内容类型中,我使用项目事件接收器查看它们是否已被检查,但如果有其他方法也可以。在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>
在edit-mode.css中,您现在可以覆盖此属性,如下所示:

.hideMeFromPage {
    display:block !important; //important, just to make sure even though it is loaded after the original declaration ;-)
}
您只需将该样式添加到
并附加自定义的编辑CSS即可。
编辑:愚蠢的我…当然,您也可以将您的字段放入
EditModePanel
标签中,如所述,或者是一个非常好的示例页面,其中包含关于页面布局的更多纠结:

检查前一个对照组时 用户建立的权限 是否应显示内容
EditModePanel
查看 当前页面处于显示或编辑状态 模式。这在中非常有用 显示帮助的WCM世界 根据需要向用户发送消息或其他内容 他们编辑一个页面。但是 其他用途-隐藏导航、添加 内联CSS覆盖要使用的类 不同的格式(特别是 有用)并发出调试信息 HTML输出中的所有示例。 通过

用法示例:

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

~~你的田地在这里~~

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


编辑:完全忘记了EditModePanel控件


您可以使用标签将任何内容限制为仅在编辑模式下显示:

    <PublishingWebControls:EditModePanel runat="server">

将您的
标签放在
之间即可

范例

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


Sharepoint哪个版本,您是否可以隐藏它们,但在源代码中可以看到它们?我正在使用MOSS 2007,最好完全删除它们,但我想只隐藏它们就可以了。问题是,页面用于编辑页面和显示页面,所以删除r这两个字段将从这两个字段中删除。可能有其他方法可以编辑它,但重要的是,这些字段在创建页面时显示,而不是在创建之后显示。我不可能简单地将页面上的两个字段插入EditModePanel括号中吗?是的。当然可能-我完全忘记了这一点。我编辑了我的源代码我想你应该删除这个答案的第一部分。
<PublishingWebControls:EditModePanel runat="server">
        <SharePointWebControls:FieldProperty FieldName="Article Expired Date" PropertyName="Description" runat="server" />
</PublishingWebControls:EditModePanel>