Запускать пользовательский Javascript каждый раз, когда запускается валидатор ASP.NET на стороне клиента? - PullRequest
3 голосов
/ 02 октября 2008

Есть ли способ запустить какой-нибудь пользовательский Javascript всякий раз, когда запускается клиентский валидатор ASP.NET (RequiredFieldValidator, RangeValidator и т. Д.)?

По сути, у меня сложный макет, который требует запуска собственного сценария всякий раз, когда элемент DOM отображается или скрывается. Я ищу способ автоматического запуска этого скрипта, когда отображается валидатор. (Я использую валидаторы с Display="dynamic")

Ответы [ 3 ]

2 голосов
/ 02 октября 2008

См. этот комментарий о том, как мне удалось продлить проверку на стороне клиента ASP.Net. Другие смогли расширить его, используя методы на стороне сервера.

0 голосов
/ 02 октября 2008

Я не уверен, что правильно понял ваш вопрос, но здесь идет речь ... вы можете добавить пользовательский валидатор (или, возможно, обработать событие onblur), в вашей пользовательской проверке JavaScript вы можете вызвать Page_ClientValidate () и проверить Page_IsValid за ошибки. Что-то вроде кода ниже:

function customValidation()
{
    Page_ClientValidate();
    if(!Page_IsValid)
    { //run your resize script }
}

НТН,

0 голосов
/ 02 октября 2008

Лучшее решение, которое я определил для моей конкретной ситуации, это:

  1. Создание глобальных структур данных JS, отображающих идентификаторы элементов управления в состояние видимости.
  2. Зарегистрируйте идентификаторы клиентов валидаторов (или чего-либо еще) в этой структуре данных.
  3. Каждые 250 миллисекунд перебирайте глобальную структуру данных и сравнивайте состояние видимости в кэше с текущим состоянием элемента. Если состояния различны, обновите кэш и запустите сценарий изменения размера.

Это ужасно во многих отношениях, и это только решение для моего конкретного сценария, а не абстрактный случай, когда мы хотим добавить произвольный код в показ / скрытие валидатора. Я хотел бы лучшего предложения!

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