Валидаторы полей в asp.net

Возможно ли иметь элементы управления «Required Field Validator» для проверки более одного поля (например, у меня есть 12 обязательных текстовых полей. Я хочу попробовать избежать использования 12 элементов управления RFV. Если проверка действительно запускается, есть ли способ отображать индивидуальное сообщение («textA пуст» или «textB пуст») и т. д.?


person user279521    schedule 12.05.2010    source источник
comment
Если вы выберете собственный валидатор, вы, вероятно, потратите в два раза больше времени, чем потратите на вырезание и вставку 12 обязательных элементов управления fieldvalidator.   -  person Chris    schedule 12.05.2010


Ответы (4)


Вы можете создать собственный валидатор, который проверяет все элементы управления.

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.customvalidator.aspx

Средство проверки обязательного поля может одновременно проверять только один элемент управления.

person kemiller2002    schedule 12.05.2010
comment
Это определенно вариант, но не устанавливайте ControlToValidate, иначе он никогда не сработает. - person Chris; 12.05.2010

Вы не можете сделать это с RequiredFieldValidator; вы можете написать свой собственный CustomValidator для этого, но проверка будет на стороне сервера, а не на стороне клиента.

person Paolo Tedesco    schedule 12.05.2010
comment
С помощью CustomValidator вы также можете зарегистрировать сценарий на стороне клиента, который должен позаботиться о проверке на стороне клиента. - person driis; 12.05.2010
comment
В CustomValidator я не могу добавить более одного ControlToValidate - person user279521; 12.05.2010
comment
@ user279521 - Это так не работает. Вы вообще ничего не устанавливаете для ControlToValidate. В коде на стороне сервера вы проверяете каждое поле по имени. - person Chris; 12.05.2010
comment
можно ли добавить индивидуальное сообщение об ошибке, когда проверка возвращает false (например, TextA пуст или TextB пуст)? - person user279521; 12.05.2010
comment
Ага. Если ваш CustomValidator называется cv, просто установите cv.ErrorMessage на все, что хотите. - person Chris; 13.05.2010

Проверка нескольких полей — контроль проверки ASP.NET — это то, что вам нужно.

person sashaeve    schedule 12.05.2010

Как упоминалось всеми остальными, вы можете создать свой CustomValidator, который может проверять на стороне клиента и на стороне сервера. Есть несколько вещей, которые вы должны иметь в виду.

1) Убедитесь, что ваш клиентский скрипт представлен как веб-ресурс. Это позволит браузеру кэшировать скрипт.

2) Используйте определенный атрибут для таргетинга на определенные текстовые поля. Это можно сделать, предоставив им определенный класс, который будет проверен в вашем пользовательском элементе управления Validator.

Надеюсь, поможет!

person azamsharp    schedule 12.05.2010