Question

nous voulons créer plusieurs parties Web après est provisionné avec WSP un site. Je peux soit créer wp à partir de zéro sur l'action de la fonction. Ou enregistrer un ensemble de WP dans la galerie et créer une instance de ce cas de besoin. Le WSP pour le modèle de site crée également la liste et les bibliothèques où ces wp ira. L'espoir que je fais sens. Quelles sont les meilleures options pour créer WP lorsque le site est dispositions. Je vais devoir ajouter un peu de code pour créer WP à la fin de l'emplacement d'approvisionnement, donc je suis certain que toutes les listes ont été créées. S'il vous plaît suggérer.

Était-ce utile?

La solution

Ok, considérons que nous avons cet environnement:

  1. Nous avons fichier WSP niveau agricole (cela pourrait aussi être sandbox dans cette situation, mais pour plus de clarté, considérons qu'il est une ferme).
  2. Ce WSP contient des définitions / instances listes et bibliothèques, ainsi que des WebParts visuels.
  3. En outre, le fichier WSP contient au moins une caractéristique en elle.
  4. Ce WSP est ajouté dans votre ferme, déployée à la collection de sites spécifiée et fonctionnalité est activée il. Ainsi, les listes et les bibliothèques sont créées et webparts sont ajoutés dans la galerie.
  5. Une fois tout cela fait, nous voulons instancier un webpart 'Webpart1' à 'default.aspx page du site.

A partir de ce point, nous pouvons ajouter un code au récepteur de fonction (en FeatureActivated), pour atteindre notre objectif. Ce code ressemblera smth comme ceci:

// prepare the webpart
var webPart = new WebPart1();
// ...here you can initialize some webpart properties, if needed

// fetch SPFile object for default.aspx page
SPFile page = web.RootFolder.Files["default.aspx"];
if (page.Exists)
{
   // ...here you probably need to check out the page if it is a publishing site

   // get LimitedWebPartManager object for the page
   var webPartManager = page.GetLimitedWebPartManager(PersonalizationScope.Shared);
   // add our webpart into the 'Main' webpart zone, using zone index = 1
   webPartManager.AddWebPart(webpart, "Main", 1);

   // ...do not forget to commit your changes here if you are using publishing site

   // save our changes
   page.Update();
}

Références MSDN:

  1. SPLimitedWebPartManager
  2. SPLimitedWebPartManager.AddWebPart
  3. Comment: Travailler avec les Web Parts sur une page
Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top