代码之家  ›  专栏  ›  技术社区  ›  Christian P.

SharePoint:从发布页隐藏字段

  •  1
  • Christian P.  · 技术社区  · 14 年前

    我有一个页面布局 PublishingLayoutPage . 其中指定了许多字段-内容如下: http://pastebin.com/L4fmc3qb .

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

    或者,是否有任何方法可以将这两个字段“注入”到页面中,并通过项目事件捕获它们?目前,这些字段已添加到页面使用的内容类型中,我使用项目事件接收器查看它们是否已被选中,但如果有其他方法可以做到这一点,也可以。

    4 回复  |  直到 6 年前
        1
  •  3
  •   Dennis G    11 年前

    在SharePoint2010中,您可以使用常规的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,你就可以走了。


    编辑: 愚蠢的我…当然,你也可以把你的领域 EditModePanel 标签如所述 MSDN 或者是一个非常好的示例页面,页面布局有更多的纠结:

    上一个控件检查的位置 用户建立 是否应显示内容, 编辑模式面板 看看 当前页面处于显示或编辑状态 模式。这在 显示帮助的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>
    
        2
  •  0
  •   brian brinley    14 年前

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


    编辑:完全忘记了editmodepanel控件

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

        3
  •  0
  •   Alberto S.    7 年前

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

        <PublishingWebControls:EditModePanel runat="server">
    
        4
  •  0
  •   HO LI Pin    6 年前

    把你的 <SharePointWebControls> 在两者之间添加标签 <PublishingWebControls:EditModePanel> 会的。

    例子

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