Share via


新しいドキュメント セット フォームの作成

最終更新日: 2010年4月15日

適用対象: SharePoint Server 2010

Microsoft SharePoint Server 2010 には、ドキュメント セットの作成に使用される新しいフォームが含まれます。このフォームは、_layouts フォルダーに配置されます。すべてのドキュメント セット コンテンツ タイプで使用される 1 つのフォームがあります。ユーザー設定フォームを使用すると、メタデータを自動的に入力したり、条件付き書式を含めたりできるため、ユーザーが選択するオプションに従って、特定のフィールドのみを表示するようにできます。

ドキュメント セット コンテンツ タイプには、NewFormUrl と呼ばれるプロパティが含まれます。このプロパティを変更することで、ドキュメント セット コンテンツ タイプごとに 1 つの新しいフォームを指定できます。このプロパティを変更する前に、新しい .aspx フォームを作成し、_layouts フォルダー、または _layouts 内のフォルダーに格納します。フォームをフォルダー内に格納する場合、ドキュメント セット アセンブリに関する情報を含む web.config ファイルを追加する必要があります。ドキュメント セット オブジェクト モデルでは、ドキュメント セットを作成するために、web.config ファイルが必要です。

CustomNewDocSet.aspx

ドキュメント セット フォームを作成するには

  1. .aspx フォームを作成し、_layouts フォルダー、または _layouts 内のフォルダーに格納します。

    CustomNewDocSet.aspx

    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="CustomNewDocset.aspx.cs" Inherits="_Default" %> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body> 
        <asp:Literal ID="litList" runat="server" />
        <asp:Literal ID="litCt" runat="server" />
    </body>
    </html>
    

    分離コード ページ

    using System;
    using System.Collections.Generic;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Microsoft.SharePoint;
     
    public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    SPList list = SPContext.Current.List;
    litList.Text = list.Title;
    SPContentTypeId ctid = new SPContentTypeId(Request.QueryString.GetValues("ContentTypeId")[0]);
    SPContentType ct = list.ContentTypes[ctid];
    litCt.Text = ct.Name;
        }
    }
    
  2. カスタムの新しいドキュメント セット ページを使用するように、ドキュメント セット コンテンツ タイプの URL を更新します。

    ヒントヒント

    ChangeNewDocSetPage.ps1 を使用してドキュメント セット コンテンツ タイプの URL を更新できます。例のスクリプトでは、変更するドキュメント セット コンテンツ タイプを含むサイトへの URL が渡されます。ctid は、変更するコンテンツ タイプの適切なコンテンツ タイプ ID を表します。スクリプトでは、既定のページではなく、カスタマイズされた新しいドキュメント セット ページを使用するように NewFormUrl プロパティが更新されます。また、以下のパラメーターが使用されます。スクリプトでは、カスタムの新しいドキュメント セット ページが作成され、新しいページを使用するように newFormUrl が更新されます。ドキュメント ライブラリ内の [新しいドキュメント] ドロップダウン リストを使用して新しいドキュメント セットを作成すると、カスタム ページがリストに表示されます。

    表 1. ChangeNewDocSetPage.ps1 オブジェクト参照

    オブジェクト参照

    説明

    $contentType.NewFormUrl

    カスタムの新しいドキュメント セット フォームを含む _layouts フォルダーに関連する場所。

    $ctid

    変更するドキュメント セットのコンテンツ タイプ ID。

    $siteurl

    カスタムのドキュメント セット コンテンツ タイプを指定する URL。

    ChangeNewDocSetPage.ps1

    $siteUrl = "http://mysite"
    $ctid = "0x0120D520"
    param($siteUrl)
    $site = New-Object Microsoft.SharePoint.SPSite($siteUrl)
    $web = $site.RootWeb; 
    $contentTypeId = New-Object Microsoft.Sharepoint.SPContentTypeId($ctid)
    $contentType = $web.ContentTypes[$contentTypeId]
    $contentType.NewFormUrl = "_layouts/CustomNewDocset/CustomNewDocset.aspx"
    $contentType.Update()
    $web.Dispose()
    $site.Dispose()
    
  3. web.config ファイル (新しいドキュメント セット コンテンツ タイプのページで必要) を作成し、カスタムの新しいドキュメント セットの .aspx ページを含むフォルダーに配置します。

    注意

    新しいドキュメント セット コンテンツ タイプのページを _layouts のルートに追加した場合、このステップをスキップできます。必要に応じて、他のアセンブリへの参照を追加できます。

    Web.Config<?xml version="1.0"?>
    <!--     Note: As an alternative to manually editing this file, you can use the Web admin tool with the ASP.NET Configuration option 
    to configure settings for your application. A full list of settings and comments can be found in 
    machine.config.comments, usually located in \Windows\Microsoft.Net\Framework\v2.x\Config -->
    <configuration>
    <system.web>
    <!--
        Set compilation debug="true" to insert debugging
        symbols into the compiled page. Because this
        affects performance, set this value to true only
        during development.        -->
    <compilation debug="false">
    <assemblies>
    <add assembly="Microsoft.Office.DocumentManagement, Version=14.0.0.0, Culture=neutral,PublicKeyToken=94DE0004B6E3FCC5"/>
    </assemblies>
    </compilation>
    </system.web>
    </configuration>
    

関連項目

概念

ドキュメント セット

ドキュメントの管理