既定では、ASP.NET 検証コントロールは、ページがサーバーにポストバックされるとき、ページが初期化された後 (つまり、ビュー ステートとポストバック データが処理された後)、イベント処理コードが呼び出される前に、検証を自動的に実行します。ブラウザーがクライアント側のスクリプトをサポートしている場合、コントロールはブラウザーで検証を実行することもできます。
ただし、場合によっては、プログラムによる検証の実行が必要になる場合があります。次の状況では、プログラムによる検証が必要になる場合があります。
·実行時に検証値が設定されていない場合。たとえば、RangeValidator コントロールを使用している場合、ユーザーが入力した値に基づいて実行時にその MinimumValue プロパティと MaximumValue プロパティを設定することができます。ページが検証を実行するために検証コントロールを呼び出すときに、RangeValidator コントロールに十分な情報がないため、現時点ではデフォルトの検証は機能しません。
·Page_Load イベント ハンドラーでコントロール (またはページ全体) の有効性を判断する必要があります。ページの処理フェーズでは、検証コントロールはまだ呼び出されないため、ページまたは個々のコントロールの IsValid プロパティは設定されていません。 (このプロパティの値を取得しようとすると、例外がスローされます。) ただし、有効性を判断したい場合は、プログラムで検証を呼び出すことができます。
·実行時にコントロール (入力コントロールまたは検証コントロール) を編集している。
さらに一般的には、いつでもプログラムで検証できるため、検証をいつ実行するかをより正確に制御できます。
検証コントロールの Validate メソッドを呼び出します。
コントロールはチェックを実行し、コントロールとページの IsValid プロパティを設定します。エラーが検出された場合、ページがユーザーに返されるときに、通常どおりエラー メッセージが表示されます。
次のコード例は、プログラムでプロパティを設定する方法を示しています。この場合、ASP.NET Web ページでリゾートの部屋を予約し、訪問ごとに無料の往復交通費を提供します。ユーザーは到着日と出発日を入力し、訪問中のスケジュールを計画する必要があります。 RangeValidator コントロールは、ユーザーが一般的な日付形式を入力し、旅行日が到着日と出発日の間にあることを確認するために使用されます。
説明: ユーザーが入力した値を日付に変換できない場合、バリデータ コントロールは例外をスローします。わかりやすくするために、この例にはエラー処理は含まれていません。
到着日と出発日は、ページ上の 2 つの TextBox Web サーバー コントロール、txtArrival と txtpayment から取得されます。旅行日は 3 番目の TextBox コントロール txtTourDate に入力され、RangeValidator コントロールによって検証されます。
注: プログラムで検証する場合は、サーバー側の検証コードが実行される前にコントロールが誤ったエラー メッセージを表示しないように、クライアント側のスクリプトを無効にする必要があります。
private void Button1_Click(オブジェクト送信者、System.EventArgs e)
{
RangeValidator1.MinimumValue = txtArrival.Text;
RangeValidator1.MinimumValue = txt出発.Text;
RangeValidator1.Type = ValidationDataType.Date;
RangeValidator1.Validate();
if (!RangeValidator1.IsValid)
{
RangeValidator1.ErrorMessage = "ツアーの日付は " +
「到着日と出発日の間にある。」;
}
}
この記事は CSDN ブログからのものです。転載する場合は出典を明記してください。
http://blog.csdn.net/dodream/archive/2009/12/17/5024666.aspx