Как определить, находится ли страница в режиме редактирования на неопубликованном сайте - PullRequest
8 голосов
/ 27 ноября 2009

Для наших издательских сайтов мы используем перечисление SPContext.Current.FormContext.FormMode, чтобы определить, находится ли текущая страница в режиме редактирования. Я видел, что это не работает для сайта команды, над которым я сейчас работаю. FormMode всегда имеет значение «Неверный».

Однако, когда я щелкаю страницу редактирования на образце страницы, страница переключается в режим редактирования, поэтому должен быть какой-то другой способ узнать, что страница находится в режиме редактирования. Так как я могу узнать, нахожусь ли я в режиме редактирования страницы, находящейся на сайте группы?

Приветствия. Иак.

Ответы [ 2 ]

8 голосов
/ 27 ноября 2009

В моем сценарии я обнаружил, что могу использовать объект WebPartManager , чтобы узнать, находится ли текущая страница в режиме редактирования.

Dim wpm As WebPartManager = WebPartManager.GetCurrentWebPartManager(Page)

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

Приведенный выше код информирует меня, находится ли текущая страница в режиме редактирования, поскольку зона веб-части находится в режиме разработки. Если не в режиме разработки, DisplayMode обычно будет «Обзор».

3 голосов
/ 21 апреля 2010

SPContext.Current.FormContext.FormMode нельзя использовать в OnInit; это всегда неверно там. Попробуйте позже; Я использую это в OnPreRender, например.

WebPartManager.DisplayMode можно использовать для проверки, активна ли часть редактора в зоне редактора. Это дополнительная вещь - вы можете иметь страницу в режиме редактирования без этого. Это зависит от того, что вы хотите проверить в вашем сценарии.

Кстати, для сравнения используйте элементы только для чтения, например: wpm.DisplayMode == WebPartManager.EditDisplayMode.

--- Ферда Прантл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...