среда, 11 мая 2011 г.

Sharepoint: Валидация данных формы в режиме редактирования страницы

Ситуация:
Есть страница веб-частей. На странице расположена веб-часть с формой заполнения. На форме внедрена валидация полей (через контролы валидации). Страницу открываем в режиме редактирования, меняем её, после чего пытаемся опубликовать. Получаем ошибку:
"Эта страница содержит недопустимое содержимое или форматирование. Дополнительные 
сведения можно найти в затронутых разделах"
или
"This page contains content or formatting that is not valid. You can find more information in the affected sections."


Решение.
Скорее всего, если форма будет заполнена корректно, то такого сообщения не будет, но очень муторно каждый раз при редактировании страницы заполнять поля формы. Поэтому правильным решением будет отключать валидаторы на время редактирования страницы.
Чтобы проверить режим отображения страницы, можно воспользоваться следующими способами:
Способ 1 (найден здесь): WebPartManager wp = WebPartManager.GetCurrentWebPartManager(Page);
if(wp.DisplayMode == WebPartManager.BrowseDisplayMode){/*что-то делаем*/}
Способ 2 (найден здесь): 
if(SPContext.Current.FormContext.FormMode == SPControlMode.Display){/*что-то делаем*/}

Т.е. мы проверяем в каком режиме находится форма и прячем валидаторы на странице, если находимся в режиме редактирования (validator.Visible = false) или вообще не добавляем валидаторы на страницу (в методе protected override void CreateChildControls())

2 комментария:

  1. А что если валидации нету, но такое сообщение получаю?

    ОтветитьУдалить
  2. К сожалению, в других ситуациях подобной ошибки не видел. Если опишите шаги для воспроизведения подобной проблемы, то попробую решить её.

    ОтветитьУдалить

Еще статьи

2leep.com