ASP.NET Mobileのホームへ戻る

CompareValidatorコントロール

 

CompareValidatorは、TextBoxなどに入力したデータの値を比較するときに使用します。たとえば、開始日/終了日を入力させるとき、終了日>開始日の条件をチェックすることができます。フォームから入力した値と比較するには、ControlToCompareプロパティを使用します。固定値と比較するには、ValueToCompareプロパティを使用します。

 

書式:

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

  ControlToCompare=”String”

  ControlToValidate=”String”

  Display=”{None|Static|Dynamic}”

  ErrorMessage=”String”

  Operator=”{DataTypeCheck|Equal|GreaterThan|GreaterThanEqual|LessThan|

    LessThanEqual|NotEqual}”

  Text=”String”

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

  ValueToCompare=”String”>

</mobile:CompareValidator>

 

 

CompareValidatorをテストするサンプル

 

CompareValidatorコントロールのサンプル

 

このサンプルでは、CompareValidatorをテストします。ToValidateTextBoxには、比較元のデータを入力します。ToCompareTextBoxには、比較先のデータを入力します。OpratorSelectionListからは、比較演算子を選択します。TypeSelectionListからは、データ型を選択します。テストボタンを選択するとテスト結果が表示されます。

 

4448では、ToValidate/ToCompareTextBoxを定義しています。行52-54では、OperatorSelectionListを定義しています。行58-59では、TypeSelectionListを定義しています。Operator/TypeSelectionListに表示するアイテムは、ランタイム時に追加します。

 

60-65では、CompareValidatorを定義しています。行62では、ControlToCompareプロパティにToCompareTextBoxIDを設定しています。行63では、ControlToValidateプロパティにToValidateTextBoxIDを設定しています。これでToValidate/ToCompareTextBoxCompareValidatorが適用されます。

 

44: <mobile:TextBox id="txtToValidate" runat="server" />
 48: <mobile:TextBox id="txtToCompare" runat="server" />
 52: <mobile:SelectionList id="slstOperator" runat="server"
 53:   StyleReference="List"
 54:   SelectType="DropDown" />
 58: <mobile:SelectionList id="slstType" runat="server"
 59:   SelectType="DropDown" />
 60: <mobile:CompareValidator id="valCompare" runat="server"
 61:   StyleReference="Validator"
 62:   ControlToCompare="txtToCompare"
 63:   ControlToValidate="txtToValidate"
 64:   Display="Dynamic"
 65:   ErrorMessage="
テストデータが不正です!" />

 

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

 

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

 

テストボタンを選択すると、フォームがポストバックされてCommandOnClickイベントに制御が渡ります。このイベントの行16-17では、OperatorSelectionListから選択したアイテム(MobileListItem)Valueプロパティから比較演算子を取得して、CompareValidatorOperatorプロパティに設定しています。

 

18-19では、TypeSelectionListから選択したアイテム(MobileListItem)Valueプロパティからデータ型を取得して、CompareValidatorTypeプロパティに設定しています。

 

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

 

15: Sub cmdTest_Click(s As Object, e As EventArgs)
 16:   valCompare.Operator = _
 17:     CType(slstOperator.Selection.Value, ValidationCompareOperator)
 18:   valCompare.Type = _
 19:     CType(slstType.Selection.Value, ValidationDataType)
 20:   valCompare.Validate()
 21:   If IsValid Then
 22:     ActiveForm = frmResult
 23:   End If
 24: End Sub

ASP.NET Mobileのホームへ戻る