ASP.NET Mobileのホームへ戻る

RangeValidatorコントロール

 

RangeValidatorは、TextBoxなどに入力した値の範囲(最小値/最大値)をチェックするときに使用します。RangeValidatorでは、CurrencyDateTimeDoubleIntegerStringなどのデータ型の範囲をチェックすることができます。

 

書式:

<mobile:RangeValidator id=”String” runat=”server”

  ControlToValidate=”String”

  Display=”{None|Static|Dynamic}”

  ErrorMessage=”String”

  MinimumValue=”String”

  MaximumValue=”String”

  Text=”String”

  Type=”{Currency|DateTime|Double|Integer|String}”>

</mobile:RangeValidator>

 

 

  RangeValidatorをテストするサンプル

 

RangeValidatorをテストするサンプル

 

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

 

サンプルの行4347では、MinimumValue/MaximumValueTextBoxを定義しています。行51-53では、TypeSelectionListを定義しています。このSelectionListには、データ型がドロップダウンリストに表示されます。SelectionListに表示するアイテムは、ランタイム時に追加します。

 

43: <mobile:TextBox id="txtMinValue" runat="server" />
 47: <mobile:TextBox id="txtMaxValue" runat="server" />
 51: <mobile:SelectionList id="slstType" runat="server"
 52:   StyleReference="List"
 53:   SelectType="DropDown" />

 

56では、ToValidateTextBoxを定義しています。このTextBoxには、テストデータを入力します。行57-61では、RangeValidatorを定義しています。行59では、ControlToValidateプロパティにToValidateTextBoxIDを設定しています。これでToValidateTextBoxに、RangeValidatorが適用されます。RangeValidatorMinumumValue/MaximumValueプロパティは、ランタイム時に設定します。

 

56: <mobile:TextBox id="txtToValidate" runat="server" />
 57: <mobile:RangeValidator id="valRange" runat="server"
 58:   StyleReference="Validator"
 59:   ControlToValidate="txtToValidate"
 60:   Display="Dynamic"

 61:   ErrorMessage="
テストデータの範囲が不正です!" />

 

Page_Loadイベントでは、ページが最初にロードされたときにSub FillListWithEnum()を呼び出してSelectionListValidationDataTypeEnumを追加します。

 

  8: Sub Page_Load()
  9:   If Not IsPostBack Then
 10:     FillListWithEnum(slstType, GetType(ValidationDataType))
 11:   End If
 12: End Sub

 

テストボタンを選択すると、フォームがポストバックされてCommandOnClickイベントに制御が渡ります。このイベントの行15-16では、TextBoxから最小値/最大値を取得してRangeValidatorMinimumValue/MaximumValueプロパティに設定しています。行17-18では、TypeSelectionListから選択したアイテム(MobileListItem)Valueプロパティからデータ型を取得して、RangeValidatorTypeプロパティに設定しています。SelectionListには、次のようなアイテムが格納されています。

 

<Item Text=”String” Value=”0” />

<Item Text=”Integer” Value=”1” />

<Item Text=”Double” Vaue=”2” />

<Item Text=”Date” Vaue=”3” />

<Item Text=”Currency” Value=”4” />

 

19では、RangeValidatorValidate()メソッドでTextBoxに入力したテストデータを診断しています。行20-22では、MobilePageクラスのIsValidプロパティを参照して診断結果を調べています。エラーがないときは、ActiveFormプロパティにfrmResultのフォームIDを設定して「OK!」を表示します。エラーを検出したときは、カレントページにエラーメッセージが表示されます。

 

14: Sub cmdTest_Click(s As Object, e As EventArgs)
 15:   valRange.MinimumValue = txtMinValue.Text.Trim()
 16:   valRange.MaximumValue = txtMaxValue.Text.Trim()
 17:   valRange.Type = _
 18:     CType(slstType.Selection.Value, ValidationDataType)
 19:   valRange.Validate()
 20:   If IsValid Then
 21:     ActiveForm = frmResult
 22:   End If
 23: End Sub

 

ASP.NET Mobileのホームへ戻る