Frage

Wir sollen mehrere Webteile erstellen, nachdem eine Website mit WSP bereitgestellt wurde. Ich kann entweder WP von Grund auf neu erstellen. Oder speichern Sie einen Satz WP in der Galerie und erstellen Sie bei Bedarf eine Instanz daraus. Die WSP for Site -Vorlage erstellt auch Liste und Bibliotheken, in die diese WP gehen werden. Ich hoffe, ich mache Sinn. Was sind meine besten Optionen, um WP zu erstellen, wenn die Website Bestimmungen sind. Ich muss einen Code hinzufügen, um am Ende der Bereitstellungsstelle WP zu erstellen, damit ich sicher bin, dass alle Listen erstellt wurden. Bitte vorschlagen.

War es hilfreich?

Lösung

Ok, denken Sie daran, wir haben diese Umgebung:

  1. Wir haben eine WSP-Datei auf landwirtschaftlicher Ebene (dies könnte auch in dieser Situation sandboxiert werden, aber aus Gründen der Klarheit ist es ein Bauernhof).
  2. Dieser WSP enthält einige Listen und Bibliothekendefinitionen/-instanzen sowie einige visuelle Webparts.
  3. Außerdem enthält die WSP -Datei mindestens eine Funktion darin.
  4. Dieser WSP wird in Ihre Farm hinzugefügt, die in der festgelegten Site -Sammlung eingesetzt wird, und die Funktion wird dort aktiviert. Daher werden Listen und Bibliotheken erstellt und Webparts in die Galerie hinzugefügt.
  5. Nach all dem möchten wir eine Webpart -Website 'WebPart1' auf der Seite 'default.aspx' instanziieren.

Ab diesem Zeitpunkt können wir dem Feature -Empfänger (in featurectivated) einen Code hinzufügen, um unser Ziel zu erreichen. Dieser Code sieht so stark aus:

// 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();
}

MSDN Referenzen:

  1. SplimitedWebPartManager
  2. SplimitedWebPartManager.Addwebpart
  3. Wie zu: Arbeiten Sie mit Webteilen auf einer Seite
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top