2015-04-22 3 views
2

Я пытался использовать Customvalidator, чтобы проверить значение, и убедитесь, что значение должно быть целым, а также оно не может быть нулевым. В начале я использую RequiredValidator и RegularExpressionValidator для достижения этого. Тем не менее, я не мог поместить их errormessage в одно и то же место, поэтому я меняю свое решение на использование Customvalidator. Но я все еще не могу понять.Как использовать Customvalidator для проверки числа

Вот мой код

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args) 
{ 
    DateTime dt; 

    if (string.IsNullOrEmpty(args.Value)) 
    { 
     CustomValidator1.ErrorMessage = "Can not be empty"; 
     args.IsValid = false; 
    } 

    else if (????) 
    { 
     ... 
    } 
} 
+0

«Тем не менее, я не мог поставить свою ошибку в том же месте», поэтому размещение было проблемой, когда вы пытались в первую очередь? – BNN

+0

Да, это мой первый вопрос. Знаете ли вы, как объединить две ошибки? –

+0

Вы можете использовать решение Tim schmelter. Он будет работать отлично. – BNN

ответ

2

Вы можете использовать int.TryParse или decimal.TryParse, чтобы проверить, если строка является допустимым числом.

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args) 
{ 
    args.IsValid = !string.IsNullOrEmpty(args.Value); 
    if (!args.IsValid) 
    { 
     CustomValidator1.ErrorMessage = "Can not be empty"; 
    } 
    else 
    { 
     int number; 
     args.IsValid = int.TryParse(args.Value, out number); 
     if(!args.IsValid) 
     { 
      CustomValidator1.ErrorMessage = "Must be a valid integer"; 
     } 
    } 
} 

Обратите внимание, что вы также должны установить ValidateEmptyText к true (по умолчанию: false). Это единственный валидатор, который не нуждается в дополнительном RequiredFieldValidator.

+0

Thx, он работает отлично. –

Смежные вопросы