RequiredFieldValidatorの使い方
● RequiredFieldValidatorをテストするサンプル

図 RequiredFieldValidatorをテストするサンプル
このサンプルは、RequiredFieldValidatorコントロールをテストします。Test DataのTextBoxにデータを入力しない状態でテストボタンをクリックするとエラーメッセージが表示されます。データを入力してからテストボタンをクリックすると「OK」が表示されます。Initial ValueのTextBoxには、Test DataのTextBoxにデフォルト値を表示するときに使用します。たとえば、Test Dataに「テストデータ入力・・・」をデフォルト表示するときは、Initial Valueにも同じデータを入力します。Test DataとInitial Valueが一致するときは、Test Dataが入力されていなと見なしてエラーとします。
このサンプルでは、以下のノウハウを習得することができます。
▲ RequiredFieldValidatorコントロールの使い方
▲ RequiredFieldValidator のInitialValueプロパティの値をランタイム時に設定する方法
▲ RequiredFieldValidator のValidate()メソッドの使い方
▲ PageクラスのIsValidプロパティの使い方
サンプルの行31では、InitialValueのTextBoxを定義しています。ここで入力した値は、Page_Load()イベントでRequiredFiledValidatorのInitialValueプロパティに設定されます。
行39では、Test DataのTextBoxを定義しています。行48-52では、RequiredFieldValidatorを定義してテストデータが入力されたか調べています。行49では、EnableClientScriptプロパティにFalseを設定してWebサーバ側でエラーチェックするようにしています。行50では、ControlToValidateプロパティにTest DataのTextBoxのIDを設定しています。ControlToValidateには、エラーチェックの対象となるコントロールのIDを設定します。行51では、DisplayプロパティにDynamicを設定してエラーメッセージを表示する領域をランタイム時に確保するようにしています。Staticを設定するとエラーメッセージの領域がデザイン時に確保されます。行52では、Textプロパティにエラーメッセージを設定しています。エラーが発生したときは、ここで設定したエラーメッセージが表示されます。
31: <asp:TextBox id="txtInitialValue"
runat="server" />
:::
39: <asp:TextBox id="txtTestData" runat="server"
/>
:::
48: <asp:RequiredFieldValidator
id="valRequiredField" runat="server"
49:
EnableClientScript="False"
50:
ControlToValidate="txtTestData"
51: Display="Dynamic"
52: Text="<hr>NG - テストデータを入力してください!"
/>
行44-46では、テストボタンを定義しています。行45では、OnClickイベントを登録しています。ボタンをクリックしたときは、Page_Load()イベント、OnClick()イベントの順に制御が渡ります。
44: <asp:Button id="btnSubmit"
runat="server"
45:
OnClick="btnSubmit_Click"
46: Text="テスト" />
テストボタンをクリックするとページがポストバックされて、最初にPage_Load()イベントに制御が渡ります。Page_Load()イベントでは、Initial ValueのTextBoxのTextプロパティから値を取得してRequiredFieldValidatorのInitialValueプロパティに設定しています。StringクラスのTrim()メソッドは、空白を除去します。
4: Sub Page_Load()
6: If IsPostBack Then
7:
valRequiredField.InitialValue = txtInitialValue.Text.Trim()
8: End If
9: End Sub
テストボタンのOnClick()イベントでは、RequiredFieldValidatorのValidate()メソッドでエラーチェックしています。PageクラスのIsValidプロパティでエラーの有無を調べて、エラーが無いときは、LabelのTextプロパティに「OK」を設定して表示します。
11: Sub btnSubmit_Click(s As Object, e As EventArgs)
12: valRequiredField.Validate()
13: If IsValid Then
14: lblMessage.Text =
"<hr>OK"
15: End If
16: End Sub