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.

frage : Wie kann ich die system.web.ui.page-Instanz der während der Erstellung der Ansicht erstellten Seite erhalten, um ihn verwenden zu können, um den WebPartManager mit webpartmanager.gettcurrentwebpartmanager (Seite)?

oder ist da ein weiterer, besserer Ansatz?

War es hilfreich?

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);
        }
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top