2009-11-27 8 views
8

Für unsere Veröffentlichungsseiten verwenden wir die SPContext.Current.FormContext.FormMode-Enumeration, um herauszufinden, ob sich die aktuelle Seite im Bearbeitungsmodus befindet. Ich habe gesehen, dass dies für eine Teamseite, an der ich gerade arbeite, nicht funktioniert. Der FormMode ist immer auf 'Ungültig' gesetzt.So ermitteln Sie, ob sich die Seite im Bearbeitungsmodus auf einer Nicht-Veröffentlichungssite befindet

Wenn ich jedoch auf einer Beispielseite auf die Bearbeitungsseite klicke, wechselt die Seite in den Bearbeitungsmodus. Es muss also eine andere Möglichkeit bestehen, zu wissen, dass sich eine Seite im Bearbeitungsmodus befindet. Wie kann ich feststellen, ob ich mich im Bearbeitungsmodus für eine Seite auf einer Teamseite befinde?

Prost. Jas.

Antwort

8

Für mein Szenario habe ich festgestellt, dass ich das Objekt WebPartManager verwenden kann, um herauszufinden, ob die aktuelle Seite im Bearbeitungsmodus ist.

Dim wpm As WebPartManager = WebPartManager.GetCurrentWebPartManager(Page) 

result = wpm.DisplayMode.Name.Equals("design", StringComparison.InvariantCultureIgnoreCase) 

Der obige Code informiert mich, ob die aktuelle Seite im Bearbeitungsmodus ist, da sich die Webpart-Zone im Entwurfsmodus befindet. Wenn nicht im Entwurfsmodus, wird DisplayMode normalerweise "Durchsuchen" sein.

+0

Es ist besser, zu überprüfen wpm.DisplayMode.AllowPageDesign da es sowohl „Design“ und „Bearbeiten“ Fälle abdeckt - in ersten Fall Webpartzone im Entwurfsmodus ist, in der zweiten eine ihrer Webparts befindet sich im Bearbeitungsmodus - beide Fälle zeigen, dass sich die Seite im Bearbeitungsmodus befindet – Andrey

2

Der SPContext.Current.FormContext.FormMode kann nicht in OnInit verwendet werden; Dort ist es immer ungültig. Probieren Sie es später aus; Ich verwende es zum Beispiel in OnPreRender.

Mit dem WebPartManager.DisplayMode kann überprüft werden, ob in der Editorzone ein Editorteil aktiv ist. Es ist eine zusätzliche Sache - Sie können die Seite im Bearbeitungsmodus haben, ohne das. Es hängt davon ab, was Sie in Ihrem Szenario überprüfen möchten.

Übrigens, verwenden Sie die schreibgeschützten Mitglieder für den Vergleich, wie: wpm.DisplayMode == WebPartManager.EditDisplayMode.

--- Ferda Prantl

Verwandte Themen