Gewusst wie: Erstellen eines neuen Dokumentenmappenformulars

Letzte Änderung: Donnerstag, 15. April 2010

Gilt für: SharePoint Server 2010

Microsoft SharePoint Server 2010 enthält ein neues Formular zum Erstellen von Dokumentenmappen. Dieses Formular ist im Ordner _layouts gespeichert. Es gibt ein Formular, das von allen Dokumentenmappen-Inhaltstypen verwendet wird. Mit einem benutzerdefinierten Formular können Metadaten automatisch eingegeben oder zusätzliche Formatierungen hinzugefügt werden, sodass in Abhängigkeit von den Optionen, die ein Benutzer auswählt, nur bestimmte Felder angezeigt werden.

Der Dokumentenmappen-Inhaltstyp enthält die Eigenschaft NewFormUrl. Durch Ändern dieser Eigenschaft können Sie ein neues Formular für jeden Dokumentenmappen-Inhaltstyp angeben. Bevor Sie diese Eigenschaft ändern, erstellen Sie ein neues ASPX-Formular, und speichern Sie es im Ordner _layouts oder in einem untergeordneten Ordner von _layouts. Wenn Sie das Formular in einem Ordner speichern, müssen Sie die Datei web.config hinzufügen, die Informationen zur Dokumentenmappenassembly enthält. Das Dokumentenmappen-Objektmodell benötigt die Datei web.config zum Erstellen einer Dokumentenmappe.

CustomNewDocSet.aspx

So erstellen Sie ein Dokumentenmappenformular

  1. Erstellen Sie ein ASPX-Formular, und speichern Sie es im Ordner _layouts oder in einem untergeordneten Ordner von _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>
    

    CodeBehind-Seite

    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. Aktualisieren Sie die URL für den Dokumentenmappen-Inhaltstyp, um die benutzerdefinierte neue Dokumentenmappenseite zu verwenden.

    TippTipp

    Die URL für den Dokumentenmappen-Inhaltstyp können Sie mithilfe von ChangeNewDocSetPage.ps1 aktualisieren. Im Beispielskript wird die URL zur Website, die den zu ändernden Dokumentenmappen-Inhaltstyp enthält, übergeben. ctid stellt die entsprechende Inhaltstyp-ID für den zu ändernden Inhaltstyp dar. Das Skript aktualisiert die NewFormUrl-Eigenschaft, um die benutzerdefinierte neue Dokumentenmappenseite anstelle der Standardseite zu verwenden, und verwendet Parameter wie folgt. Das Skript erstellt eine neue benutzerdefinierte Dokumentenmappenseite und ändert den Wert der newFormUrl-Eigenschaft in die neue Seite. Wenn Sie die Dropdownliste Neues Dokument in einer Dokumentbibliothek verwenden, um eine neue Dokumentenmappe zu erstellen, sollte die benutzerdefinierte Seite in der Liste angezeigt werden.

    Tabelle 1. ChangeNewDocSetPage.ps1-Objektverweis

    Objektverweis

    Beschreibung

    $contentType.NewFormUrl

    Der Speicherort in Bezug auf den Ordner _layouts, der das benutzerdefinierte neue Dokumentenmappenformular enthält.

    $ctid

    Die Inhaltstyp-ID der Dokumentenmappe, die geändert wird.

    $siteurl

    Die URL, die den benutzerdefinierten Dokumentenmappen-Inhaltstyp angibt.

    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. Erstellen Sie eine Datei web.config (erforderlich für die neue Seite mit dem Dokumentenmappen-Inhaltstyp), und speichern Sie sie in dem Ordner, der die benutzerdefinierte neue ASPX-Dokumentenmappenseite enthält.

    HinweisHinweis

    Diesen Schritt können Sie überspringen, wenn Sie die neue Seite mit dem Dokumentenmappen-Inhaltstyp dem Stammverzeichnis von _layouts hinzugefügt haben. Bei Bedarf können Sie Verweise auf weitere Assemblys hinzufügen.

    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>
    

Siehe auch

Konzepte

Dokumentenmappen

Verwalten von Dokumenten