2012-04-17 14 views
1

カスタムバリデータには、ClientValidationFunctionおよびControlToValidateというプロパティがあります。この関数は、このようなものです:ASP.NET- args.Valueの型は何ですか

function MyValidationFunction(source,args) { 
    if(args.Value==......) 
} 

私はここに「ソースが」ControlToValidateであることを知っています。しかし、私はargs.Valueの種類が何であるか理解できません。それは価値として何を取りますか? controltovalidateがテキストボックスであるとき、私はそれがそのテキストボックスのテキストだが、コントロールがユーザコントロールであればそれは何かを知っている。ですから私の質問は、検証する価値は何ですか?それを変更できますか?明らかに、クライアント側の検証のために、レンダリングされたHTMLコントロールのValueプロパティは理にかなっている、使用され

答えて

1

、例えば、(及びそのvalueプロパティの内容を含む単純な<input type="text">としてレンダリングさTextBoxコントロール用テキストボックス)。

注:この記事(カスタム)コントロールは、複数のHTMLコントロールで構成されている場合は、クライアント側の検証では、以下のサポート技術情報の記事によると、現実的ではありませんサーバー側の検証のためだけにCalendarコントロールを拡張する方法を示します。クライアント側の検証が行われるためには、検証コントロールは、対応するHTMLコントロールのプロパティに接続します。多くのHTMLコントロールは、Calendarコントロールを構築するために使用されるため、HTMLコントロールにはCalendarコントロールの選択された値が含まれていません。したがって、クライアント側の検証は、カレンダーコントロールには適切ではありません。ところで

は、サーバー側の検証のために、あなたは、検証のために使用されるプロパティを指定するValidationProperty属性を使用することができます。


EDITthis SO questionによると、あなたの出力ユーザーコントロールの最初のコントロールとして<input type="hidden">場合、これはクライアント側の検証に使用されます。これは実際の制御値をそこに格納することに慣れている場合に便利な回避策です。

1

参考:ASP.NET Validation in Depth

2つのパラメータは、サーバ機能に渡されるパラメータを に対応し、クライアントの関数に渡されます。最初は クライアントバリデータ要素で、2番目はサーバー上の 引数と同等です。これには、有効な入力を含む の2つのプロパティValueと、有効性を示すために を更新できるIsValidという2つのプロパティがあります。

function CheckEven(source, args) { 
    var val = parseInt(args.Value, 10); 
    if (isNaN(val)) { 
     args.IsValid = false; 
    } 
    else { 
     args.IsValid = ((val % 2) == 0); 
    } 
} 

あなたはそれが読み取り専用である、値を変更することはできません。チェックerverValidateEventArgs.Value Property およびUsing the CustomValidator Control