0

展開したソリューションにページ レイアウトがあります。ページ レイアウトには、カスタム コンテンツ タイプも関連付けられています。

このページ レイアウトとコンテンツ タイプを更新したいのですが、サイトの特定の場所についてのみです。その理由は、重要な「操作の更新」のために、電子メールだけでなく、購読しているユーザーに SMS を送信する機能 (Sharepoint のリスト用の組み込み機能) が必要だからです。

これが機能する方法は、SMS を送信するかどうかを決定するブール フィールドと、メッセージを通知する電子メール アドレスを入力するフィールドを追加することです。

これまでの私のアプローチは次のとおりです。

  • フィールドが選択/入力されているかどうかを確認し、実際の送信を行うイベント レシーバーを作成します。
  • 2 つの新しいフィールドでレイアウト ページを変更します。
  • 2 つの新しいフィールドでコンテンツ タイプを変更します。

ただし、サイトの残りの部分が複雑になるのではないかと心配しています。今のところ、ページ レイアウトの将来の使用は問題ではなく、既存の使用のみです。

XML 定義によるコンテンツ タイプの更新が自動的に行われないことはわかっているので、その点では問題ありませんが、問題の特定のページにレイアウト ページを「含まれる」ようにするにはどうすればよいでしょうか?

編集:ページを表示するときではなく、ページを編集するときにのみ2つのフィールドを表示するにはどうすればよいですか? 現在、私の開発サイトには編集フォームが適切に表示されていますが、ページを表示すると、ブール値フィールドが配置されている場所に「はい」が表示され、電子メール フィールドに入力された電子メール アドレスが表示されます。

4

1 に答える 1

0

ページ レイアウトがコンテンツ タイプに関連付けられていること、およびコンテンツ タイプに関連付けられているページではないことを確認してください。

フィールドを自動的に追加する場合は、次のことができます。

  1. リストの新規/編集/表示フォームで使用されるカスタム レンダリング テンプレートを作成します (http://weblogs.asp.net/sharadkumar/archive/2008/07/07/how-to-customize-rendering-of- sharepoint-list-form-fields-part-1.aspx)

  2. コンテンツ タイプ (http://msdn.microsoft.com/en-us/library/aa543922.aspx) の新しいフィールドを自動的に取得するカスタム ListFieldIterator を作成します (または既定のものを使用します)。

  3. DLL 内のコードを使用して、コンテンツ タイプのフィールドを反復処理し、ページに必要なコントロールをすべてコードで作成します。FieldControls (http://msdn.microsoft.com/en-us/library/dd571480.aspx) を使用すると、フィールドの既定のテンプレート レンダリングが自動的に作成されます (つまり、ラジオ ボタン、ドロップダウン ボックス、など、コンテンツ タイプのフィールドによって定義されます)。

あなたの編集では、「ページを編集するとき」と言うとき、「Sharepoint Designer でページ定義を編集するとき」ではなく、「リストの編集ページを表示するとき」を意味すると思います。

その仮定が正確であると仮定すると、リストの編集ページに、リストの表示ページ (およびリストの新しいページ) とはまったく異なるものを表示させることができます。デフォルトでは、ページは完全に個別に定義され、完全に個別に編集されます。ただし、コンテンツ タイプのフィールドのリストを自動的に取得するもの (ListFieldIterator など) を使用している場合は、非表示にするフィールドのカスタム フィールド コントロールを作成し、フィールド コントロール セットのビュー テンプレートを設定できます。何も表示しない。

于 2010-11-17T12:26:30.450 に答える