Обработчик событий на стороне клиента при проверке элементов управления asp.net - PullRequest
1 голос
/ 21 августа 2009

У меня есть форма asp.net с кучей разделов, которые можно развернуть / свернуть и, как правило, свернуть. Теперь к большинству элементов управления в форме прикреплен RequiredFieldValidator или некоторые другие валидаторы. Если пользователь пытается отправить форму с не заполненными обязательными полями, поскольку m не отправлено, но поскольку большинство разделов обычно свернуто, пользователь не увидит текст валидатора (например, восклицательный знак справа от текстового поля), запрашивающий чтобы исправить ошибку. Я хочу, чтобы элементы управления, которые не прошли проверку, расширили свои родительские контейнеры, чтобы пользователь мог видеть эти элементы управления, но для этого мне нужно подключить некоторый клиентский JavaScript-код sode, который будет выполняться при сбое проверки на стороне клиента. Я не нашел никакого способа сделать это - валидаторы, естественно, не выставляют эти «события валидации» для подключения. Конечно, я могу создавать свои собственные валидаторы, но это будет означать переписывание (и дублирование функциональности) полностью всех существующих валидаторов asp.net, что звучит как большая часть работы.

Есть идеи?

Заранее спасибо! Андрей

1 Ответ

1 голос
/ 21 августа 2009

Вот как я решил подобную проблему. Для каждого валидатора, добавляемого в аккордеон, я сохраняю идентификатор валидатора в массиве вместе с панелью аккордеона, в которой он содержится. Затем я передаю этот список клиенту. Я также подключаюсь к событию OnSubmit, вызывая Page.ClientScript.RegisterOnSubmitStatement. Функция javascript, которая выполняется во время onSubmit, сначала проверяет, является ли страница действительной, если это так, то она просто закрывается, если нет, то она просматривает список валидаторов, ища недействительные, когда находит, она расширяется раздел, связанный с этим валидатором.

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