Добавление обязательного валидатора поля в веб-часть SharePoint - PullRequest
3 голосов
/ 24 марта 2009

Я пишу веб-часть для MOSS 2007. Мне нужно проверить текстовое поле в этой веб-части или которое я использую для проверки полей.

Я создаю обязательное поле проверки следующим образом:

vldProjectError = new RequiredFieldValidator();
vldProjectError.ForeColor = Color.Red;
vldProjectError.ErrorMessage = Resources.LABEL_PROJECT_ERROR;
vldProjectError.ControlToValidate = txtProjectName.ClientID;
vldProjectError.Display = ValidatorDisplay.Dynamic;
this.Controls.Add(vldProjectError);

Приведенный выше фрагмент кода находится в переопределении CreateChildControls (). Когда я открываю эту веб-страницу, я получаю общее сообщение об ошибке в SharePoint. Я не могу перехватить ошибку путем отладки.

Я заметил, что исключение выдается после CreateChildControls () и перед методом Render (), потому что отладчик никогда не входит в метод Render ()

Есть идеи, как использовать валидаторы в сайтах sharepoint? Я что-то пропустил?

Ответы [ 4 ]

3 голосов
/ 02 апреля 2009

Я смог решить проблему.

мы должны использовать

txtProjectName.ID = "txtProjectName";    
vldProjectError.ControlToValidate = txtProjectName.ID;

вместо

vldProjectError.ControlToValidate = txtProjectName.ClientID;

и это должно быть сделано внутри метода CreateChidControls ().

2 голосов
/ 24 марта 2009

Я бы попробовал две вещи:

  1. Включение вывода ошибок определенно полезно при разработке для SharePoint, следуйте этой записи , чтобы включить его.
  2. Попробуйте назначить свойство ControlToValidate в методе Render, а не в CreateChildControls. Или, по крайней мере, сделайте это после добавления txtProjectName в коллекцию элементов управления.
0 голосов
/ 31 марта 2009

У меня была та же проблема, что и у вас с элементами управления валидатора. Свойство controlId проверенного элемента управления будет нулевым, пока вы не добавите его в коллекцию элементов управления веб-части. Итак, валидатор должен быть настроен после этой строки:

this.Controls.Add(txtProjectName);

Проверьте эту отладку своей веб-части и посмотрите на свойство ClientId проверенного элемента управления.

0 голосов
/ 24 марта 2009

Вы пытались включить вывод ошибок в браузер в файле web.config? Может быть, это даст вам более подробное сообщение.

...