Hinzufügen von WebPart, um die Seite auf der Bereitstellung anzuzeigen
-
10-12-2019 - |
Frage
Ich habe eine Liste mit zwei Ansichten (eine Liste und eine Kalenderansicht), die beim Aktivieren eines Merkmals erstellt werden, das eine nachfolgende Ansichtsdefinition für den Kalender im Schema.xml der ListDefinition enthält. . generasacodicetagpre.
Erstellen dieser Ansicht erstellt eine Seite mit dem Kalender mit dem Kalender an der URL /LISTs/appointments/allappointmentscalendar.aspx
Anforderung : Fügen Sie der von der Ansicht erstellten Seite einen zusätzlichen WebPart hinzu.
Um diesen zusätzlichen WebPart hinzuzufügen, habe ich einen spfeTurerEurde angehängt und wollte es mit dem WebPartManager in der mit dem Webpartinager hinzufügen.
oder ist da ein weiterer, besserer Ansatz?
Lösung
Going to answer my own question. Knowing the page URL, I've been able to retrieve the (limited) web part manager through the SPWeb:
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
try
{
string relativePageUrl = string.Format("Lists/{0}/AllAppointmentsCalendar.aspx",
ElBusConstants.LIST_NAME_APPOINTMENTS);
SPLimitedWebPartManager limitedWebPartManager =
((SPWeb) properties.Feature.Parent).GetLimitedWebPartManager(relativePageUrl,
PersonalizationScope.Shared);
if (limitedWebPartManager != null)
{
limitedWebPartManager.AddWebPart(new ApplyFontTagsWebPart(), "Top", 0);
}
}
catch (Exception ex)
{
string message = "Failed to add web part.";
SPDiagnosticsService.Local.WriteTrace(0,
new SPDiagnosticsCategory(typeof (ElBusHelper).FullName,
TraceSeverity.Unexpected,
EventSeverity.Warning),
TraceSeverity.Unexpected, message, ex);
}
}