ValidationSummary с проверкой на стороне клиента и на стороне сервера

Если вы используете элемент управления CustomValidator и элемент ValidationSummary на странице aspx для проверки на стороне сервера, вы можете установить ErrorMessage валидатора, и его текстовое значение появится на месте, а значение ErrorMessage будет отображаться в элементе управления ValidationSummary.

Хороший.

Теперь, что, если я также выполню проверку на стороне клиента в javascript, возможно ли выполнить такой же вид отображения сообщения проверки, как если бы код на стороне сервера был запущен? Чтобы ValidationSummary отображал свой обычный HeaderText вместе с вашим дополнительным ErrorMessage, а CustomValidator отображал свое текстовое значение (например, *)

Я, вероятно, могу подделать его для стороны клиента или сервера, но было бы неплохо использовать существующие элементы управления, если это вообще возможно.

Заранее благодарим за любые идеи или предложения


person Adam Fox    schedule 25.08.2009    source источник


Ответы (2)


Вы можете запустить сам валидатор на стороне клиента, если для параметра EnableClientScript установлено значение true. Затем ClientValidationFunction можно задать имя функции javascript, которую вы пишете для проверки элемента управления. Остальная часть поведения элемента управления CustomValidator будет связана с ValidationSummary, как и любой другой валидатор, включая размещение ErrorMessage в заголовке и т. Д. И т. Д.

person Matt Hamsmith    schedule 25.08.2009
comment
Это работает очень хорошо, однако в любом случае требуется обратная передача (асинхронная или иная), чтобы это произошло через события javascript? Например, если вы хотите проверить размытие текстового поля? - person Adam Fox; 26.08.2009
comment
Если EnableClientScript имеет значение true, обратная передача не выполняется. Вот MSDN с примером: msdn.microsoft.com /en-us/library/f5db6z8k(VS.71).aspx Вы также можете делать и то, и другое (на стороне клиента и на стороне сервера), как показано в примере. Я также считаю, что проверка выполняется по умолчанию, когда проверяемое текстовое поле теряет фокус (onblur). - person Matt Hamsmith; 26.08.2009
comment
Совершенно верно, у меня не было набора ControlToValidate. Большое спасибо! - person Adam Fox; 26.08.2009
comment
Одна небольшая проблема. Проверка на стороне клиента, если я нажимаю кнопку, у которой есть causevalidation = true, работает точно, но onblur для текстового поля показывает * рядом с ним для валидатора, но сообщение об ошибке не отображается в сводке проверки ... какие-либо идеи? - person Adam Fox; 26.08.2009

Я попытался получить объект DOM для сводки во время выполнения, но если у вас нет очень простой страницы, т.е. нет элементов управления AJAX, таких как панель и т. д., вам не повезло.

person callisto    schedule 25.08.2009