Пользовательский валидатор срабатывает только при первом нажатии кнопки? - PullRequest
1 голос
/ 17 февраля 2011

У меня есть пользовательский валидатор и некоторые другие валидаторы на странице.Но всякий раз, когда я нажимаю кнопку отправки в первый раз, запускается только пользовательский валидатор, а когда я нажимаю кнопку во второй раз, он проверяет остальные валидаторы.Пожалуйста, дайте мне знать, если у вас есть какое-либо решение.

Спасибо

Ответы [ 2 ]

1 голос
/ 24 августа 2011

На стороне клиента, когда

OnClientClick="return SomeCustomClientCode();"

Вызывается, валидаторы asp.net, например, обязательные валидаторы полей, отключены, и они не попадают в список валидаторов и не проверяют поле, проверенное этим валидатором, и возвращают страницы, если пользовательская валидация прошла.

Чтобы избежать этого, явно включите валидаторы asp.net в пользовательском коде проверки или в другом месте, чтобы он активировался до обратной передачи страницы или в начале пользовательской проверки следующим образом:

ValidatorEnable(document.getElementById('<%=rfvDDLStatus.ClientID%>'), true);

rfvDDLStatus ==> required field validator, который не был запущен .. ValidatorEnable ==> Client API для включения валидатора asp.net

1 голос
/ 17 февраля 2011

Проверьте свой Page_Load, чтобы убедиться, что вы не скрываете и не активируете что-либо после второго вызова. Раньше у меня была похожая проблема, и меня это смущало, пока я не понял, что манипулирую Panel в Page_Load, который содержит валидатор.

Кроме этого, вам нужно будет отправить код (ваше Page_Load и Click событие).

...