Событие нажатия кнопки ASP.NET, продолжающее работать даже после пользовательской проверки на стороне сервера, завершается неудачно - PullRequest
5 голосов
/ 27 мая 2010

У меня проблема с тем, что мое событие нажатия кнопки все еще срабатывает, даже если для моей пользовательской проверки на стороне сервера установлено значение args.IsValid = false. Я отлаживаю код, и проверка определенно запускается до нажатия кнопки, и args.IsValid определенно устанавливается в false, как только происходит пользовательская проверка, но впоследствии она всегда переходит к событию нажатия кнопки. Есть идеи, почему это так?

Ответы [ 2 ]

6 голосов
/ 27 мая 2010

Не уверен 100% подробностей, но чтобы предотвратить продолжение кода, добавьте в ваш обработчик события нажатия кнопки:

if (!Page.IsValid)
     return;

Это предотвратит выполнение кода.

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

На стороне клиента, когда вызывается OnClientClick="return SomeCustomClientCode();", валидаторы asp.net, например, обязательные валидаторы полей, отключены, и он не попадает в список валидаторов и не проверяет поле, проверенное этим валидатором, и отправляет обратно страницы, если проходит пользовательская валидация ...

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

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

rfvDDLStatus ==> обязательный валидатор поля, который не запускался.

ValidatorEnable ==> Клиентский API для включения валидатора asp.net

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