#c# #asp.net #validation
#c# #asp.net #проверка
Вопрос:
Если у меня есть более одного asp.net серверный валидатор для одного и того же элемента управления,
(предположим, что оба они могут возвращать false в определенной ситуации), и я хочу отобразить только одно сообщение (кроме сводки проверки),
как я могу достичь этой цели и сгруппировать Text
свойство всех валидаторов, которые ссылаются на один и тот же элемент управления?
Если я реализую эту ситуацию, я получаю на выходе Text
атрибут каждого из валидаторов…
Комментарии:
1. Попробуйте написать пользовательский валидатор
Ответ №1:
Поместите эти два элемента управления валидаторов отдельно ValidationGroup
и создайте новый пользовательский валидатор, который проверяет эти два элемента управления валидаторов с помощью унифицированного сообщения.
protected void CustomValidator (object sender, ServerValidateEventArgs e)
{
e.IsValid = validator1.IsValid amp;amp; validator2.IsValid
}
Комментарии:
1. Но если я помещу их отдельно
ValidationGroup
, isValid одного из них не будет иметь значения, потому что он будет находиться в другой сетиValidationGroup
от элемента управления, который запускает событие…2. Может быть, я могу поместить, в то же самое
ValidationGroup
, но оставить текст пустым, а в CustomControl оставить ErrorMessage пустым и поместить только текст, который я хочу отобразить…
Ответ №2:
Вы можете получить его с помощью функции javascript и поместить в CustomeValidator и задать текстовое сообщение в customeValidator
function ValidateTwoValidations(oSrc, args) {
var Val1 = document.getElementById("Validator1ClientId");
var Val2 = document.getElementById("Validator2ClientId");
if (Val1.IsValid = false amp;amp; Val2.IsValid = false){
args.IsValid = false;
}
else {
args.IsValid = true;
}
}