2010-11-19 14 views
1

PublishingLayoutPageのintheritsのページレイアウトがあります。その中にいくつかのフィールドが指定されています - コンテンツはここに表示されます:http://pastebin.com/L4fmc3qbSharepoint:公開ページのフィールドを非表示にする

ただし、2つのフィールド(SendSMSおよびSendEmail)は、ページとして表示されているときではなく、ページ上の編集フォームにのみ表示する必要があります。表示されたページでこれらのフィールドを非表示にするにはどうすればよいですか?

また、これらの2つのフィールドをページに「注入」し、アイテムイベントでキャッチする方法はありますか?現在、これらのフィールドは、ページが使用するコンテンツタイプに追加されています。アイテムイベントレシーバーを使用してチェックされているかどうかを確認しますが、これを行う別の方法がある場合も同様です。

+0

Sharepointのバージョンを、あなたはそれらを隠すだけで十分ですが、ソースコードにそれらを表示することができますか? –

+0

私はMOSS 2007を使用しており、それらを完全に削除することをお勧めしますが、可視性だけを隠しておいても問題ありません。 –

答えて

3

Sharepoint 2010では、通常のCSSでこれを行うことができます(これは2007でも動作しますが、今はテストするシステムがありません) - または回答の2番目の部分を確認してください。

あなたが最初にあなたが編集モードにあるときのための特別な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にそれを追加することができます:あなたは今では同じようにこのプロパティを上書きすることができ、あなたの編集mode.cssで

.hideMeFromPage { 
    display:none; 
} 

を:

.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括弧内のページに2つのフィールドを挿入することはできませんか? –

+0

はい。確かに可能です - 私はそれについて完全に忘れました。元の投稿を編集してその情報を追加しました。 –

+0

私はあなたがこの答えの最初の部分を削除する必要がありますと思います。 – niaher

0

これは、一般的に、単純にSharePointデザイナーやカスタムページレイアウト定義にページレイアウト上のコントロールからフィールドを削除することによって行われます。フィールド定義は実際にはコンテンツタイプの一部です。誰かがページプロパティを編集する場合、定義されたフィールドが表示されます。しかし、ページレイアウトのページフィールドからそれを削除すると、レンダリングから離れてしまいます。


編集:完全EditModePanel制御について

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

+0

問題は、ページは編集ページとそれを表示するために使用されるため、2つのフィールドのコントロールを削除すると、両方から削除されます。おそらくそれを編集する他の方法がありますが、ページが作成されたときにフィールドが表示され、後では表示されないことが重要です。 –

0

を忘れてしまったあなたがタグを使用してのみ編集モードに表示する任意のコンテンツを制限することができます。

<PublishingWebControls:EditModePanel runat="server"> 
関連する問題