J'ai développé un projet de définition de liste et créé une page Aspx de vue personnalisée comme vue par défaut de la liste. Je voudrais maintenant ajouter un webpart personnalisé à afficher dans la page aspx vue personnalisée. Des idées de comment cela peut-il être fait?Comment ajouter une partie WebPart personnalisée à une page ASPX de vue personnalisée dans le projet de définition de liste
Répondre
Vous pouvez utiliser un récepteur de fonctions et gérer l'ajout de composants WebPart lors de l'activation des fonctions. Voici un bout de talon pour vous aider à démarrer.
En fonction du code d'appel de méthode activée similaire à ce qui suit:
// Add web parts to the .aspx page that was provisioned
SPFile page = site.GetFile(<<page url>>);
Hashtable hashWebPartsOnPage = new Hashtable();
using (SPLimitedWebPartManager mgr = page.GetLimitedWebPartManager(PersonalizationScope.Shared))
{
try
{
// First, let's clear the existing web parts off of the form
foreach (System.Web.UI.WebControls.WebParts.WebPart webPart in mgr.WebParts)
{
hashWebPartsOnPage.Add(webPart.ID, webPart);
}
foreach (string webPartName in hashWebPartsOnPage.Keys)
{
System.Web.UI.WebControls.WebParts.WebPart webPart = hashWebPartsOnPage[webPartName] as System.Web.UI.WebControls.WebParts.WebPart;
mgr.DeleteWebPart(webPart);
}
// Add Part to the proper Zone
MyWebPart myWebPart = new MyWebPart();
//set web part properties
mgr.AddWebPart(myWebPart, "FullPage", 1);
}
finally
{
mgr.Web.Dispose();
}
}
page.Update();
Eh bien, je voudrais accéder à la vue définition de liste la page que je ne pense pas que sera accessible en utilisant ce qui précède site.GetFile () méthode. Toutes les autres options que vous pensez pouvoir utiliser pour y parvenir. J'ai essayé les étapes suivantes:
Copiez le OOB « ViewPage.aspx » et le placer dans le même dossier que « CustomViewPage.aspx »
Créer la partie Web personnalisée qui affiche les éléments de la vue avec votre approche personnalisée.
Créez une fonction pour provisionner "CustomViewpage.aspx" avec votre composant WebPart personnalisé.
Créez une définition de liste personnalisée. Dans le fichier schema.xml de la définition de toutes les vues, mentionnez le "SetupPath" pour référencer votre "CustomViewPage.aspx". Avec cette étape toutes les vues mentionnées dans la définition de liste utiliseront "CustomViewPage.aspx" pour créer les pages d'affichage et toutes les vues que vous créez après la création de la liste utiliseront "customViewPage.aspx" comme base page pour créer les pages d'affichage.
Étape 1:
copie le OOB « ViewPage.aspx » et le placer dans le répertoire C: \ Program Files \ Common Files \ Microsoft Shared \ extensions serveur web \ 12 \ TEMPLATE \ dossier Pages comme « CustomViewPage.aspx »
Étape 2:
Créer la partie Web personnalisée qui affiche les éléments de la vue avec votre approche personnalisée. Fondamentalement, utilisez la méthode GetViewfromUrl ("Listes //") pour obtenir la vue, puis récupérer les éléments dans le composant WebPart. L'extrait de code pour le composant WebPart personnalisé se présente comme suit:
SPList list = SPContext.Current.List;
Chaîne strViewName =
SPView view = SPContext.Current.Web.GetViewFromUrl ("Listes/liste /" + strViewName);
SPListItemCollection listItems = list.GetItems (voir);
. .
.
. Après avoir obtenu les éléments de la liste, effectuez votre approche personnalisée pour afficher les éléments.
Créez la DLL de partie Web et placez-la dans le GAC.
Étape 3:
Créer une fonction à la disposition « CustomViewPage.aspx » avec votre partie Web personnalisée. En activant cette fonctionnalité, "Customviewpage.aspx" sera intégré à votre composant WebPart personnalisé. Le contenu du fichier manifeste des éléments ressemble suit:
<File Url="Pages/CustomViewPage.aspx" Type="Ghostable">
<AllUsersWebPart WebPartZoneID="Main" WebPartOrder="1">
<![CDATA[
<WebPart xmlns="http://schemas.microsoft.com/WebPart/v2">
<Assembly>CustomWebpartforView, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e3483ddc8b0d437a</Assembly>
<TypeName> CustomWebpartforView.MyCustomview</TypeName>
<FrameType>None</FrameType>
<IsVisible>true</IsVisible>
<Title>Custom Web part for View</Title>
</WebPart>
]]>
</AllUsersWebPart>
</File>
Cette étape me donne une erreur pour le chemin du fichier source que je modifié en donnant l'attribut Path dans l'étiquette de fichier
Étape 4:
Maintenant, la page vue personnalisée de base est disponible avec la partie Web. Maintenant, comment intégrer la page de vue personnalisée avec la définition de la liste. Créez une définition de liste personnalisée et pour toutes les vues définies dans le schéma, mentionnez "SetupPath" pour utiliser "CustomViewPage.aspx". La page de vue personnalisée sera désormais utilisée comme page de vue de base pour toutes les vues définies dans la définition de liste. Les vues créées ultérieurement utiliseront également "CustomViewpage.aspx" comme page de base. L'extrait de l'échantillon pour déclarer les vues à l'intérieur du schema.xml est la suivante:
installer et activer la fonction de la définition de votre liste personnalisée. Maintenant, avec toutes ces étapes, lorsque vous créez une liste basée sur cette définition de liste personnalisée, toutes les vues créées utiliseront "CustomViewPage.aspx" pour créer les pages d'affichage et votre composant WebPart personnalisé sera affiché au lieu de le profil de forme de données OOB. Les vues que vous créerez après la création de la liste (via l'interface utilisateur, via le modèle objet) utiliseront également la page "CustomViewpage.aspx" comme page de base pour créer des pages d'affichage.
Pour une raison quelconque, je ne parviens toujours pas à voir le fichier CustomViewPage.aspx avec mon composant WebPart personnalisé. Ai-je manqué quelque chose ou il manque quelque chose dans cet article.
sur SharePoint 2010, vous pouvez ajouter un composant WebPart personnalisé ou SharePoint WebPart dans la même vue dans la définition Schema.xml de la liste définition (je ne parle pas de liste par exemple).
Bien que n'est pas directement expliquée par MSDN, et si vous regardez la vue du schéma que vous ne pouvez pas voir un « <WebParts> » définition, vous pouvez réellement faire quelque chose comme ceci:
<View BaseViewID="7" Type="HTML" WebPartZoneID="Main" DisplayName="$Resources:CILSS_defaultView" DefaultView="TRUE" MobileView="FALSE" MobileDefaultView="FALSE" SetupPath="pages\viewpage.aspx" ImageUrl="/_layouts/images/generic.png" Url="CI_Projects.aspx">
<Toolbar Type="Standard" />
<XslLink Default="TRUE">main_cilss.xsl</XslLink>
<RowLimit Paged="TRUE">30</RowLimit>
<ViewFields>
<FieldRef Name="Attachments"></FieldRef>
<FieldRef Name="LinkTitle"></FieldRef>
<FieldRef Name="CILSS_ProjectDescription"></FieldRef>
</ViewFields>
<Query>
<OrderBy>
<FieldRef Name="LinkTitle" Ascending="TRUE"></FieldRef>
</OrderBy>
</Query>
<ParameterBindings>
<ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
<ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_DEFAULT)" />
</ParameterBindings>
<WebParts>
<AllUsersWebPart WebPartZoneID="Main" WebPartOrder="2">
<![CDATA[<WebPart xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/WebPart/v2">
<Title>Default Home Webpart</Title>
<FrameType>None</FrameType>
<Description>Use for formatted text, tables, and images.</Description>
<IsIncluded>true</IsIncluded>
<ZoneID>Left</ZoneID>
<PartOrder>0</PartOrder>
<FrameState>Normal</FrameState>
<Height />
<Width />
<AllowRemove>true</AllowRemove>
<AllowZoneChange>true</AllowZoneChange>
<AllowMinimize>true</AllowMinimize>
<AllowConnect>true</AllowConnect>
<AllowEdit>true</AllowEdit>
<AllowHide>true</AllowHide>
<IsVisible>true</IsVisible>
<DetailLink />
<HelpLink />
<HelpMode>Modeless</HelpMode>
<Dir>Default</Dir>
<PartImageSmall />
<MissingAssembly>Cannot import this Web Part.</MissingAssembly>
<PartImageLarge>/_layouts/images/mscontl.gif</PartImageLarge>
<IsIncludedFilter />
<Assembly>Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
<TypeName>Microsoft.SharePoint.WebPartPages.ContentEditorWebPart</TypeName>
<ContentLink xmlns="" />
<Content xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor">
<Value><div>Create and view Project documents:</div>
<br/></Value></Content>
<PartStorage xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor" />
</WebPart>]]>
</AllUsersWebPart>
</WebParts>
</View>
Cette La définition de la vue inclut un composant WebPart Editeur de contenu dans la vue de liste appelée 'CI_Projects.aspx'. N'oubliez pas d'affecter WebPartZoneId et d'affecter un objet BaseViewID différent des vues par défaut incluses dans la définition de la liste.
La partie Web sera configurée sur chaque liste que vous créerez avec cette définition de liste. (évidemment seulement sur le view.aspx nommé que vous définissez).
- 1. Comment ajouter une page Web à une définition de site?
- 2. Définition de l'écouteur de touche sur une vue personnalisée
- 3. Est-il possible d'écrire une partie de recherche personnalisée WSS?
- 4. rediriger vers une page personnalisée pour une liste dans sharepoint
- 5. comment ajouter une vue à schema.xml dans sharepoint
- 6. Comment ajouter une option de partage personnalisée dans iMovie?
- 7. Comment créer une entrée "type de liste" personnalisée à request.POST
- 8. Comment ajouter une étape de construction personnalisée à un projet basé sur automake dans KDevelop?
- 9. Ajouter une balise personnalisée à la validation Visual Studio
- 10. WPF - Ajouter une police personnalisée
- 11. Comment ajouter une colonne personnalisée à une grille MvcContrib?
- 12. ajouter l'indexation à la liste personnalisée
- 13. Partie Web avec une propriété personnalisée liée à un champ "choix" d'un type de contenu?
- 14. Comment créer une page WordPress personnalisée?
- 15. Comment ajouter une entrée de texte personnalisée aux images dynamiquement
- 16. Comment diriger vers une page d'erreur personnalisée?
- 17. Liaison de WPF ComboBox à une liste personnalisée
- 18. Comment ajouter une section personnalisée à la page d'accueil de Django?
- 19. SharePoint: Comment puis-je ajouter par programme des éléments à une instance de liste personnalisée?
- 20. Ajout d'une vue personnalisée à une fenêtre dans Cocoa
- 21. Récupérer une liste de composants WebPart sur une page
- 22. Comment ajouter une valeur vide ou personnalisée à une liste déroulante liée?
- 23. C#: Comment ajouter un destructeur à une classe personnalisée?
- 24. Comment utiliser l'extension de fichier personnalisée au lieu de .ASPX
- 25. Comment ajouter une commande routée personnalisée dans WPF?
- 26. Colonne personnalisée dans la liste
- 27. Impossible de supprimer la DLL de partie Web SharePoint personnalisée
- 28. Comment passer une valeur personnalisée au contrôle asp.net sur la page aspx?
- 29. comment créer une sortie personnalisée de JAXB?
- 30. Comment créer une section de configuration personnalisée dans app.config?