2010-12-27 2 views
0

Motive: У меня есть десятичное свойство в классе, который я желаю, чтобы подтвердить, так что он придерживается REGEXПрименение атрибута RegexValidator (Microsoft.Practices.EnterpriseLibrary.Validation.Validators) к десятичному типу?

Так я "^ \ D {1,7} \ d {2,7} $." применил атрибут валидатор Regex свойству

[RegexValidator(@"^\d{1,7}\.\d{2,7}$"...)] 
    public Decimal MyDecimalProperty { get; set; } 

Затем с помощью propertyproxyvalidator на моей странице asp.net я повязал проверку текстового поля для данного типа недвижимости.

<cc1:PropertyProxyValidator ID="MyValidator" runat="server" ControlToValidate="MyTextBox" 
PropertyName="MyDecimalProperty" SourceTypeName="Myclass, Mydll"></cc1:PropertyProxyValidator> 

Во время выполнения я получаю эту ошибку, когда проверка получает выполняемую:

«Значение для проверки не от ожидаемого типа: ожидается System.String но получил System.Decimal вместо этого.»

Любая идея, как обойти эту проблему или альтернативу для достижения моего мотива?

ответ

0

Регулярные выражения построены для работы с строками, а не с числовыми типами. Может быть, вам нужно что-то вроде этого: вместо

public Decimal MyDecimalProperty { get; set; } 

[RegexValidator(@"^\d{1,7}\.\d{2,7}$")] 
public string MyDecimalPropertyString 
{ 
    get 
    { 
     return this.MyDecimalProperty.ToString(); 
    } 
} 

Кроме того, обновить атрибут PropertyProxyValidatorPropertyName.

+0

Да, это мое последнее средство. Я думал, если есть какой-то способ предоставить некоторый typeconverter :( – mishal153

+0

Спасибо, хотя для этого sugestion – mishal153

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