Procédure : Créer un formulaire d’ensemble de documents
Dernière modification : jeudi 15 avril 2010
S’applique à : SharePoint Server 2010
Microsoft SharePoint Server 2010 inclut un nouveau formulaire qui permet de créer des ensembles de documents. Ce formulaire se trouve dans le dossier _layouts ; il existe un formulaire utilisé par tous les types de contenu d’ensemble de documents. Avec un formulaire personnalisé, il est possible de remplir automatiquement des métadonnées ou d’inclure une mise en forme conditionnelle de sorte que seuls certains champs soient affichés, en fonction des options sélectionnées par l’utilisateur.
Le type de contenu d’ensemble de documents inclut une propriété nommée NewFormUrl. La modification de cette propriété vous permet de spécifier un nouveau formulaire pour chaque type de contenu d’ensemble de documents. Avant de modifier cette propriété, créez un formulaire .aspx et stockez-le dans le dossier _layouts ou dans un sous-dossier dans _layouts. Si vous stockez le formulaire dans un dossier, vous devez ajouter un fichier web.config qui contient des informations sur l’assembly d’ensemble de documents. La création d’un ensemble de documents avec le modèle objet d’ensemble de documents requiert le fichier web.config.
CustomNewDocSet.aspx
Pour créer un formulaire d’ensemble de documents
Créez un formulaire .aspx et stockez-le dans le dossier _layouts ou dans un sous-dossier dans _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>
Page de code-behind
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; } }
Mettez à jour l’URL du type de contenu d’ensemble de documents de façon à utiliser la nouvelle page d’ensemble de documents personnalisée.
Conseil Vous pouvez utiliser ChangeNewDocSetPage.ps1 pour mettre à jour l’URL du type de contenu d’ensemble de documents. L’exemple de script passe l’URL au site qui contient le type de contenu d’ensemble de documents à modifier. ctid représente l’ID du type de contenu à modifier. Le script met à jour la propriété NewFormUrl de façon à utiliser la nouvelle page d’ensemble de documents personnalisée plutôt que la page par défaut et utilise les paramètres comme suit. Le script crée une nouvelle page d’ensemble de documents personnalisée et met à jour la propriété newFormUrl de façon à utiliser la nouvelle page. Lorsque vous utilisez la liste déroulante Nouveau document dans une bibliothèque de documents pour créer un ensemble de documents, la page personnalisée doit apparaître dans la liste.
Tableau 1. Référence d’objet ChangeNewDocSetPage.ps1
Référence d’objet
Description
$contentType.NewFormUrl
Emplacement par rapport au dossier _layouts qui contient le nouveau formulaire d’ensemble de documents personnalisé.
$ctid
ID de type de contenu de l’ensemble de documents modifié.
$siteurl
URL qui spécifie le type de contenu d’ensemble de documents personnalisé.
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()
Créez un fichier web.config (nécessaire pour la nouvelle page de type de contenu d’ensemble de documents) et placez-le dans le dossier qui contient la nouvelle page .aspx d’ensemble de documents personnalisée.
Notes
Vous pouvez ignorer cette étape si vous avez ajouté la nouvelle page de type de contenu d’ensemble de documents à la racine de _layouts. Vous pouvez ajouter des références à d’autres assemblys selon les besoins.
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>