SharePoint 2007 入力フォームでコンテンツ タイプを表示

こんにちは、奥田です。

今日はセミナーに参加いただいたお客様からいただいた質問内容をご紹介します。

「コンテンツタイプをいくつか関連付けしたリストがあり、入力フォームを開いた際にどのコンテンツ タイプの入力フォームを開いているか表示したい」とのことでした。

アイテムの表示画面 (DispForm.aspx) や編集画面 (EditForm.aspx) であれば、SharePoint Designer で <ListItemProperty> タグを利用すれば表示できそうですが、新規入力画面 (NewForm.aspx) ではまだアイテムが保存されていないのでプロパティ表示は行えません。

Web で検索すると、SharePoint Forum (英語) で同様の質問をしているスレッドを見つけました。
Show the Content Type on NewForm.aspx

その中に実装方法がのせられていたので、日本語に翻訳してみます。
NewForm.aspx にコンテンツ タイプ名を表示するにはサーバーサイド コードが必要。
SharePoint ではページのインラインコードは既定で実行できないため、web.config の設定変更に必要。

● 対象の Web アプリケーションの web.config を編集

<PageParserPaths>
 
<PageParserPath VirtualPath=”/*” CompilationMode=”Always” AllowServerSideScript=”true” IncludeSubFolders=”true”/>
</PageParserPaths>

● NewForm.aspx に下記コードを追加

コンテンツ タイプ名を表示したい箇所に、<asp:Label runat=”server” ID=”ctype”></asp:Label>

<script language=”C#” runat=”server” type=”text/c#”>
protected override void OnLoad(EventArgs e)
{
 
if(Request.QueryString[“ContentTypeId”] != null)
{
  
string ctype=Request.QueryString[“ContentTypeId”];
  
SPWeb oWeb = SPContext.Current.Web;
  
SPContentType type = oWeb.Lists[“リスト名”].ContentTypes[new SPContentTypeId(ctype)];
  
this.ctype.Text=type.Name;
 
}
 
base.OnLoad(e);
}
</script>

以上です。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中