2010-12-27 1 views
0

動機:私はそれ正規表現するために付着するように検証したいクラスの小数財産持っているので、私はRegexValidator(Microsoft.Practices.EnterpriseLibrary.Validation.Validators)属性を小数点型に適用しますか?

「^ \ dは{1,7} \ dは{2,7} $。」私のasp.netページにpropertyproxyvalidatorを経て、

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

次にプロパティに正規表現のバリデータの属性を適用している私は、このプロパティの型テキストボックスの検証を結び付けています。実行時に

<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

関連する問題