2012-03-16 17 views
0

asp.net MaskedEditExtenderとMaskedEditValidatorに問題があります。私は電話マスクとマスクされたバリデータでカスタムコントロールを作成しました。私はいくつかの助けを借りて修正できるという2つの問題があります。マスクされた編集バリデーター電話

問題1 - 私は電話番号を検証するValidationExpressionを持っていますが、EnableClientScript = falseを設定すると、メッセージは画面に表示されません。それは正しく検証され、それらを通過させませんが、メッセージは表示されません。それが本当であれば表示されますが、私はサーバー側の検証をしたいだけです。

問題2 - 私のコントロールが必要でないことがあります。マスクが空でない場合、検証式をトリガーする方法はありますか?今すぐ必要があればEmptyValueMessageが表示され、テキストが入力されると検証が開始されます。ただし、IsValidEmptyがtrueの場合、検証式は空の場合にトリガーされ、空を許可しません。空でない場合にのみトリガする方法はありますか、空のマスクを許可するように式を更新する必要はありますか?表現を更新する必要がある場合、誰かが良い例を持っていますか? (申し訳ありませんが、正規表現は私の弱点です)

以下は私のコードです。

_maskedEditExtender.ID = "maskedExt" + this.ID; 
_maskedEditExtender.ClientIDMode = System.Web.UI.ClientIDMode.Static; 
_maskedEditExtender.TargetControlID = this.ID; 
_maskedEditExtender.MaskType = MaskedEditType.None; 
_maskedEditExtender.Mask = "(999) 999-9999"; 
_maskedEditExtender.InputDirection = MaskedEditInputDirection.LeftToRight; 
_maskedEditExtender.ClearMaskOnLostFocus = false; 

_maskedEditValidator.ID = "maskedVal" + this.ID; 
_maskedEditValidator.ControlToValidate = this.ID; 
_maskedEditValidator.ControlExtender = _maskedEditExtender.ID; 
_maskedEditValidator.InitialValue = "(___) ___-____"; 
_maskedEditValidator.IsValidEmpty = !Required; 
_maskedEditValidator.ValidationExpression = @"^[01]?[- .]?(\([2-9]\d{2}\)|[2-9]\d{2})[- .]?\d{3}[- .]?\d{4}$"; 
_maskedEditValidator.EmptyValueMessage = "Please enter a phone number."; 
_maskedEditValidator.InvalidValueMessage = "Please enter a valid phone number."; 

_maskedEditValidator.ValidationGroup = "FormsValidationGroup"; 
_maskedEditValidator.CssClass = "FormValidation"; 
_maskedEditValidator.EnableClientScript = false; 
+0

私は問題2を見つけました。正規表現を変更しました。マスクを含めました。 _maskedEditValidator.ValidationExpression = @ "^ [01]?[ - 。]?(\([2-9] \ d {2} \)| [2-9] \ d {2})[ - 。 \ d {3} [ - 。]?\ d {4} |(\(___ \)___ \ -____)$ "; – user1041169

答えて

0

問題1 ...私はこれを修正する方法についての応答をやったことがなかった、とユーザーが毎回戻って投稿することが望ましいので、私はちょうど偽= enableclientscript設定。

問題2 ... maskedEditValidator.ValidationExpression = @ "^ [01]?[ - 。]?(([2-9] \ d {2})| [2-9] \ d {2}) [ - 。]?\ d {3} [ - 。]?\ d {4} |(()_ _-_)$ ";

関連する問題