Inclure un composant WebPart dans une page web sur le site web de compl?ment
Vous pouvez inclure un composant WebPart prêt à l’emploi sur une page du site web d’un complément SharePoint. Toutefois, vous devez éviter que des problèmes surviennent si vous devez mettre à jour le complément.
Pour obtenir un exemple de code illustrant les conseils de cette rubrique, consultez l’article OfficeDev/Core.WebPartOnAppWebPage.
Ajouter un composant WebPart à une page
Créez un projet de Complément SharePoint hébergé sur Sharepoint dans Visual Studio. Pour plus d’informations, voir Prise en main de la création de compléments SharePoint hébergés par SharePoint.
Ouvrez le fichier .aspx auquel vous souhaitez ajouter un composant WebPart. Cette rubrique utilise Default.aspx comme exemple.
Ajoutez un WebPartZone à l’élément
<asp:Content>
où vous souhaitez que le composant WebPart avec un balisage. En règle générale, vous souhaitez l’ajouter au dontContentPlaceHolderId
est<asp:Content>
PlaceHolderMain
. Voici un exemple.<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server"> <WebPartPages:WebPartZone runat="server" FrameType="TitleBarOnly" ID="HomePage1" Title="loc:full" /> </asp:Content>
Avertissement
Il est possible d’ajouter un élément de composant WebPart, tel que <WebPartPages:XsltListViewWebPart> en tant qu’enfant de WebPartZone. Toutefois, cette opération est généralement déconseillée dans un Complément SharePoint. Si le complément doit être mis à jour, un élément de composant WebPart inséré dans le fichier .aspx peut entraîner l’échec de la mise à jour dans certains scénarios avec le message « Un composant WebPart avec cet ID a déjà été ajouté à cette page ». Nous vous recommandons d’ajouter des composants WebPart au manifeste des éléments de la page, comme décrit plus loin dans cette procédure.
Ouvrez le fichier manifeste des éléments de la page. Il est généralement appelé elements.xml et se trouve dans le même dossier de projet que le fichier .aspx.
Dans l’élément File de la page, ajoutez un élément enfant AllUsersWebPart et définissez la propriété WebPartZoneID sur la valeur de la zone de composants WebPart créée sur la page, comme indiqué dans cet exemple.
<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <Module Name="Pages"> <File Path="Pages\Default.aspx" Url="Pages/Default.aspx" ReplaceContent="TRUE" > <AllUsersWebPart WebPartZoneID="HomePage1" WebPartOrder="1"> </AllUsersWebPart> </File> </Module> </Elements>
Ajoutez un élément CDATA comme enfant de l’élément AllUsersWebPart, puis ajoutez un élément webParts comme enfant de l’élément CDATA, comme indiqué dans cet exemple.
<AllUsersWebPart WebPartZoneID="HomePage1" WebPartOrder="1"> <![CDATA[ <webParts> </webParts> ]]> </AllUsersWebPart>
Ajoutez une balise webPart en tant qu'enfant de l'élément webParts. L'exemple de code suivant permet d'ajouter un élément XsltListViewWebPart. Dans cet exemple, nous partons du principe qu'une liste personnalisée appelée « Test List » fait partie du même projet. Pour plus d’informations sur l’ajout d’une liste personnalisée à un site web de complément, voir Créer un complément hébergé par un fournisseur qui inclut une liste SharePoint personnalisée et un type de contenu.
Remarque
Notez que le composant WebPart n’a pas de propriété ID. Il est recommandé d’inclure un ID explicite pour le composant WebPart uniquement dans les deux cas où il est vraiment nécessaire : le composant WebPart est ajouté à une page wiki SharePoint. Le composant WebPart est l’un des deux ou plusieurs composants WebPart connectés.
<webParts> <webPart xmlns="http://schemas.microsoft.com/WebPart/v3"> <metaData> <type name="Microsoft.SharePoint.WebPartPages.XsltListViewWebPart, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> </metaData> <data> <properties> <property name="ListUrl">Lists/{TestList}</property> <property name="IsIncluded">True</property> <property name="NoDefaultStyle">True</property> <property name="Title">{Test List}</property> <property name="PageType">PAGE_NORMALVIEW</property> <property name="Default">False</property> <property name="ViewContentTypeId">0x</property> </properties> </data> </webPart> </webParts>
Sélectionne F5 pour déboguer le complément. Le composant WebPart doit s’afficher sur la page.