ASP.NET 検証コントールのホームへ戻る

RangeValidatorの使い方

 

   RangeValidatorをテストするサンプル

 

RangeValidatorをテストするサンプル

 

このサンプルでは、RangeValidatorコントロールをテストします。MinimumValueTextBoxには、最小値を入力します。MaximumValueTextBoxには、最大値を入力します。TypeDropDownListからはデータ型を選択します。Test DataTextBoxには、テストデータを入力します。テストボタンをクリックすると、テストデータが最小値/最大値の範囲かチェックします。範囲外のときは、エラーメセージを表示します。

 

このサンプルでは、以下のノウハウを習得することができます。

 

  RangeValidatorコントロールの使い方

  RangeValidator MinimumValueプロパティをランタイム時に設定する方法

  RangeValidatorMaximumValueプロパティをランタイム時に設定する方法

  RangeValidator Validate()メソッドの使い方

  PageクラスのIsValidプロパティの使い方

 

サンプルの行47では、MininumValue(最小値)のTextBoxを定義しています。行48-51では、RequiredFieldValidatorTextBoxにデータが入力されているかチェックします。未入力のときは、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を定義しています。DropDownListListItemは、ランタイム時にSub FilllListWithEnum()を呼び出して設定します。

 

71:     <asp:DropDownList id="dropValidationDataType" runat="server"
 73:       AutoPostBack="False" />

 

81では、Test DataTextBoxを定義しています。行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()イベントでは、RangeValidatorValidate()メソッドでエラーチェックして結果を表示します。行94-98では、RangeValidatorコントロールを定義しています。行95では、EnableClientScriptプロパティにFalseを設定してWebサーバ側でエラーチェックするようにしています。行96では、ControlToValidateプロパティにテストデータのTextBoxIDを設定しています。行98では、Textプロパティにエラーメッセージを設定しています。RangeValidatorMininumValue/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()イベントでは、ポストバックされたときにRangeValidatorMinimumValueMaxinumValueプロパティを設定しています。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()イベントでは、RangeValidatorValidate()メソッドでエラーチェックしています。PageクラスのIsValidプロパティでエラーの有無を調べて、エラーが無いときはLabelTextプロパティに「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

ASP.NET 検証コントールのホームへ戻る