2009-11-27 64 views
8

對於我們的發佈網站,我們使用SPContext.Current.FormContext.FormMode枚舉來確定當前頁面是否處於編輯模式。我已經看到,這不適用於我目前正在開發的團隊網站。 FormMode始終設置爲「無效」。如何判斷頁面是否處於非發佈網站上的編輯模式

但是,當我點擊示例頁面上的編輯頁面時,頁面切換到編輯模式,因此必須有其他方式來知道頁面處於編輯模式。那麼,如何判斷我是否處於團隊網站中的頁面的編輯模式?

乾杯。 Jas。

回答

8

對於我的情況,我發現我可以使用WebPartManager對象來確定當前頁面是否處於編輯模式。

Dim wpm As WebPartManager = WebPartManager.GetCurrentWebPartManager(Page) 

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

上面的代碼告訴我當前頁面是否處於編輯模式,因爲webpart區域處於設計模式。當不在設計模式時,DisplayMode通常是「瀏覽」。

+0

這是更好地檢查wpm.DisplayMode.AllowPageDesign,因爲它涵蓋了「設計」和「編輯」的情況 - 在第一種情況下的網絡部分區域在設計模式,在第二個它的Web部件處於編輯模式 - 兩種情況都表明頁面處於編輯模式 – Andrey 2014-07-07 21:02:59

2

無法在OnInit中使用SPContext.Current.FormContext.FormMode;那裏總是無效。稍後再嘗試;例如,我在OnPreRender中使用它。

WebPartManager.DisplayMode可用於檢查編輯器區域中的編輯器部件是否處於活動狀態。這是一個額外的事情 - 你可以沒有這個頁面編輯模式。它取決於你想要檢查你的場景。

順便說一下,使用只讀成員進行比較,如:wpm.DisplayMode == WebPartManager.EditDisplayMode。

--- Ferda Prantl

相關問題