2011-07-31 4 views
1

さまざまなASP.NETコントロールを検証する必要がありますが、検証が失敗したときに標準のテキスト/アスタリスク/イメージを表示する代わりに、カスタムコンテンツを表示する必要があります入力テキストボックスの輪郭の色、ツールチップを表示するなど)。検証が失敗した場合の表示を除いて、ほとんどの場合標準の検証コントロール(TextBoxのRequiredFieldValidatorなど)を使用できます。ASP.NET検証コントロールでカスタムレスポンスを作成する

私はCustomValidatorsの作成を始めましたが、さまざまな検証(必須フィールド、正規表現、範囲)のためにこれを何度も実行する必要があります。これらのバリデータのロジックを再作成して、レスポンス出力を変更できるのは無駄です。 http://msdn.microsoft.com/en-us/library/3w0bs977.aspxのMSドキュメントでは、この場合、クライアントとサーバーの両方でカスタム応答を行うことができます。「クライアント側とサーバー側の両方で、コントロールの色の変更やテキストのフォントの変更などのカスタム応答を作成できますラベルの上に。これは、サーバー側の例を示していますが、クライアント側のメソッドを提供していません。クライアントのカスタムレスポンスを処理する最善の方法は何ですか?

答えて

1

この記事はあなたを助けるかもしれない:

http://msdn.microsoft.com/en-us/library/aa479045.aspx

特に、この節( "特殊効果"、そこの下にし、 "クライアント側の検証" を探してください):

<asp:Label id=lblZip runat=server 
    Text="Zip Code:"/> 
<asp:TextBox id=txtZip runat=server 
    OnChange="txtZipOnChange();" /></asp:TextBox><br> 
<asp:RegularExpressionValidator id=valZip runat=server 
    ControlToValidate=txtZip 
    ErrorMessage="Invalid Zip Code" 
    ValidationExpression="[0-9]{5}" /><br> 

<script language=javascript> 
function txtZipOnChange() { 
    // Do nothing if client validation is not active 
    if (typeof(Page_Validators) == "undefined") return; 
    // Change the color of the label 
    lblZip.style.color = valZip.isvalid ? "Black" : "Red"; 
} 
</script> 

をまだありますあなたがいくつかのjQueryなどできれいにすることができるかもしれないいくつかの配線アップ

+0

はい、それは私が何をしているかのようです。ありがとう! –

関連する問題