Frage

Wie kann ich ein Webpart festlegen, damit er automatisch an eine Webpart -Zone angehängt wird, wenn ein bestimmtes Seitenlayout ausgewählt ist?

Die Lösungen, die ich bisher ausprobiert habe, ist:

  1. Verwendung <ZoneTemplate> unter <WebPartZone> und mein Webpart dort einsetzen
  2. Hinzufügen von .webPart-Code direkt in <AllUsersWebPart> wo ich das Seitenlayout in Elementen.xml definiere
  3. Setzen Sie den Webpart auf den Seitenlayouts -Programme beim Erstellen von Site -Struktur (Bereitstellungsskript).
  4. Fügen Sie einen Haken hinzu, der sich anschließt und den Webteil hinzufügt

Probleme mit den Lösungen:

  1. Der Web -Teil scheint statisch zu werden und kann nach dem Erstellen nicht entfernt werden.
  2. Müsste .WebPart-Code sowohl in ein .webpart-file als auch in elements.xml (ich möchte, dass es standardmäßig festgelegt und standardmäßig festgelegt ist). Und ein Chaos in meinen Elementen zu machen.xml.
  3. Das Webpart wird erst zum ersten Mal bereitgestellt. Wenn Sie also eine neue Seite mit dem Seitenlayout erstellen, wird der Webpart nicht enthalten.
  4. Wir wissen nicht, wie das geht, da das Seitenlayout festgelegt ist nach Erstellen der Seite. Wir haben Hooks zum Festlegen von Standard -Seitenlayout basierend auf der Stelle in der Struktur, in der die Seite erstellt wird. Hier können wir auch den Webpart anhängen, aber dann wird der Webpart hinzugefügt, wenn Sie eine Seite an einem bestimmten Ort erstellen.
War es hilfreich?

Lösung

Da Sie SP2010 verwenden, sollten Sie in der Lage sein, die zu verwenden Webprovisioned Ereignis, um zusätzliche Funktionen wie die zu befragen, die Sie fragen.

In SP2007 würde ich eine der oben genannten Methoden anwenden, die Sie je nachdem, was ich brauchte. Der letzte würde ich mit einem benutzerdefinierten Bereitstellungsanbieter erreichen. Schauen Sie sich meinen anderen Beitrag dazu an hier.

Andere Tipps

Ich habe Ihre Methode 1. und 2. ausgiebig verwendet. Ich kann das Problem, das Sie für Lösung beschreiben, nicht folgen. Abgesehen davon haben beide Lösungen (1. und 2.). Der Nachteil, dass alle Webteile jedes Mal dupliziert werden, wenn die Funktion des Pagelayouts reaktiviert wird und Sie einen Aufräumcode benötigen, um Code für einen Reinigungscode zu benötigen repariere das.

Ich habe Nummer 1 verwendet (auf dem ursprünglichen Beitrag) und es funktioniert perfekt. Web -Teile werden nicht statisch, es sei denn, Sie haben Web -Teil -Eigenschaften definiert, um das Verschieben oder Abschluss des Webparts zu vermeiden oder zu schließen, oder wenn Sie nicht genügend Berechtigungen haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top