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