2015-11-08 2 views
0

Мне нужна помощь по проблеме, связанной с валидаторами asp.net и обратной обработкой.Проблема с обратной почтой и пользовательскими валидаторами в asp.net

Проблема в том, что у меня есть страница «p1», и у нее есть главная страница «m1». В дополнение к этим у меня также есть usercontrol 'u1'.

Теперь проблема заключается в том, что на главной странице 'm1' у меня есть кнопка, которая инициирует обратную передачу. И на моем usercontrol 'u1', у меня есть некоторые поля, которые мне нужно проверить/проверить и остановить обратную передачу, если поля недействительны.

Я пробовал использовать customvalidators и принудительно вызывать метод Page.Validate(). Но, делая это, я вижу, что свойство page.IsValid является ложным, но при этом происходит обратная передача. Я даже попытался написать оператор возврата, если поля управления являются invaild, но это не помогает.

Любые предложения?

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

Спасибо!

ответ

0

Если нажатие кнопки вызывает обратную передачу, даже если страница недействительна (как в вашем случае это доказано, что свойство Page.IsValid - False), то это означает, что кнопка не настроена для проверки на валидации на стороне клиента ,

Решение 1: Вам необходимо инициализировать в «CausesValidation» Достояние Баттона со значением True»

Однако это требует изменения разметку„кнопки“на разметке И это не так. то, что вы хотите выполнить

решения 2:.. вы можете из вашей страницы, доступ к кнопке главной страницы внутри события Load и Инициализировать CausesValidation свойства кнопки Истины Имейте взгляд на следующую ссылку, чтобы найти кнопку на главной странице: https://msdn.microsoft.com/en-us/library/xxwa0ff0.aspx