2010-11-19 42 views
1

我有一個頁面佈局,從PublishingLayoutPage inhereits。其中指定了許多字段 - 內容可以在這裏看到:http://pastebin.com/L4fmc3qb分享:從發佈頁面隱藏字段

但是,兩個字段(SendSMSSendEmail)我只想顯示在頁面上的編輯窗體上,而不是當它被視爲一個頁面。如何在顯示的頁面上隱藏這些字段?

或者,有什麼辦法可以將這兩個字段「注入」到頁面中並用項目事件捕獲它們嗎?目前,這些字段已被添加到頁面所使用的內容類型中,我使用一個項目事件接收器來查看它們是否已被檢查,但是如果有另一種方法可以做到這一點,那也沒關係。

+0

的Sharepoint的版本,並且它足以讓你隱藏它們,但讓它們在源代碼中可見? – 2010-11-19 09:41:44

+0

我正在使用MOSS 2007,最好完全刪除它們,但我想只有讓它們隱藏可見性才行。 – 2010-11-19 11:47:00

回答

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; 
} 

在你編輯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> 
+0

我不能簡單地在EditModePanel括號內的頁面上插入兩個字段嗎? – 2010-11-19 14:33:19

+0

是的。絕對有可能 - 我完全忘記了這一點。我編輯了我原來的帖子以包含這些信息。 – 2010-11-19 15:02:29

+0

我想你應該刪除這個答案的第一部分。 – niaher 2014-01-23 07:01:29

0

這通常是通過從控制頁面佈局在SharePoint Designer或自定義頁面佈局定義簡單地拆除現場完成。字段定義實際上是內容類型的一部分,所以如果有人編輯頁面屬性,他們應該看到定義的字段。但是將其從頁面佈局上的頁面字段中移除會將其從渲染中移除。


編輯:完全忘記了EditModePanel控制

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

+0

問題是,該頁面用於編輯頁面以及顯示它,因此刪除兩個字段的控件將從兩個字段中刪除它。可能還有其他一些編輯方式,但重要的是在創建頁面時顯示字段,而不是事後。 – 2010-11-19 13:35:28

0

您可以限制任何內容,只在使用標籤編輯模式中顯示:

<PublishingWebControls:EditModePanel runat="server">