Partager via


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

  1. 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;
        }
    }
    
  2. 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.

    ConseilConseil

    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()
    
  3. 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>
    

Voir aussi

Concepts

Ensembles de documents

Gestion de documents