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

図 RangeValidatorをテストするサンプル
このサンプルでは、RangeValidatorコントロールをテストします。MinimumValueのTextBoxには、最小値を入力します。MaximumValueのTextBoxには、最大値を入力します。TypeのDropDownListからはデータ型を選択します。Test DataのTextBoxには、テストデータを入力します。テストボタンをクリックすると、テストデータが最小値/最大値の範囲かチェックします。範囲外のときは、エラーメセージを表示します。
このサンプルでは、以下のノウハウを習得することができます。
▲ RangeValidatorコントロールの使い方
▲ RangeValidator のMinimumValueプロパティをランタイム時に設定する方法
▲ RangeValidatorのMaximumValueプロパティをランタイム時に設定する方法
▲ RangeValidator のValidate()メソッドの使い方
▲ PageクラスのIsValidプロパティの使い方
サンプルの行47では、MininumValue(最小値)のTextBoxを定義しています。行48-51では、RequiredFieldValidatorでTextBoxにデータが入力されているかチェックします。未入力のときは、TextBoxの右側に「*」を表示します。
47: <asp:TextBox id="txtMinValue" runat="server"
/>
48: <asp:RequiredFieldValidator
runat="server"
49:
ControlToValidate="txtMinValue"
50:
Display="Dynamic"
51:
Text="*" />
行59では、MaximumValue(最大値)のTextBoxを定義しています。行60-63では、TextBoxにデータが入力されているかチェックします。未入力のときは、TextBoxの右側に「*」を表示します。
59: <asp:TextBox id="txtMaxValue" runat="server"
/>
60: <asp:RequiredFieldValidator
runat="server"
61:
ControlToValidate="txtMaxValue"
62:
Display="Dynamic"
63:
Text="*" />
行71-73では、Type(データ型)のDropDownListを定義しています。DropDownListのListItemは、ランタイム時にSub FilllListWithEnum()を呼び出して設定します。
71: <asp:DropDownList id="dropValidationDataType"
runat="server"
73:
AutoPostBack="False" />
行81では、Test DataのTextBoxを定義しています。行82-85では、TextBoxにテストデータが入力されているか調べます。未入力のときは、TextBoxの右側に「*」を表示します。
81: <asp:TextBox id="txtTestData" runat="server"
/>
82: <asp:RequiredFieldValidator
runat="server"
83:
ControlToValidate="txtTestData"
84:
Display="Dynamic"
85:
Text="*" />
行90-92では、テストボタンを定義しています。行91では、OnClick()イベントを登録しています。OnClick()イベントでは、RangeValidatorのValidate()メソッドでエラーチェックして結果を表示します。行94-98では、RangeValidatorコントロールを定義しています。行95では、EnableClientScriptプロパティにFalseを設定してWebサーバ側でエラーチェックするようにしています。行96では、ControlToValidateプロパティにテストデータのTextBoxのIDを設定しています。行98では、Textプロパティにエラーメッセージを設定しています。RangeValidatorのMininumValue/MaximumValueプロパティは、ランタイム時に設定します。
90: <asp:Button id="btnSubmit"
runat="server"
91:
OnClick="btnSubmit_Click"
92: Text="テスト" />
94: <asp:RangeValidator
id="valRange" runat="server"
95:
EnableClientScript="False"
96:
ControlToValidate="txtTestData"
97: Display="Dynamic"
98: Text="<hr>NG - テストデータの範囲が不正です!"
/>
テストボタンをクリックすると、ページがポストバックされてPage_Load()イベント、OnClick()イベントの順に制御が渡ります。Page_Load()イベントでは、ポストバックされたときにRangeValidatorのMinimumValueとMaxinumValueプロパティを設定しています。StringクラスのTrim()メソッドは、空白を除去します。
4: Sub Page_Load()
5: lblMessage.Text = String.Empty
6: If Not IsPostBack Then
7:
FillListWithEnum(dropValidationCompareOperator,
GetType(ValidationCompareOperator))
8:
FillListWithEnum(dropValidationDataType, GetType(ValidationDataType))
9: Else
10: valCompare.Operator =
CType(dropValidationCompareOperator.SelectedItem.Value,
ValidationCompareOperator)
11: valCompare.Type =
CType(dropValidationDataType.SelectedItem.Value, ValidationDataType)
12: End If
13: End Sub
テストボタンのOnClick()イベントでは、RangeValidatorのValidate()メソッドでエラーチェックしています。PageクラスのIsValidプロパティでエラーの有無を調べて、エラーが無いときはLabelのTextプロパティに「OK」を設定して表示します。
15: Sub btnSubmit_Click(s As Object, e As EventArgs)
16: valRange.Validate()
17: If IsValid Then
18: lblMessage.Text =
"<hr>OK"
19: End If
20: End Sub