検証コントロール

 あるテキストボックスに入力された値が、一定の条件をみたすかどうかを検証するコントロールです。次のような種類があります。

■ RequiredFieldValidatorコントローラー

RequiredFieldValidatorコントローラー

 ユーザーがコントロールにデータを入力したかどうかを検証します。

■ 主なプロパティ

■ ControlToValidateプロパティ

 検証するコントロールのIDを設定します。

■ ErrorMessageプロパティ

 エラーメッセージで使用する文字列を設定します。

■ InitialValueプロパティ

 検証コントロールの基本値を設定します。

■ RangeValidatorコントロール

RangeValidatorコントロール

 ユーザーが入力した値が範囲内かどうかを検証します。

■ 主なプロパティ

■ ControlToValidateプロパティ

 検証するコントロールのIDを設定します。

■ ErrorMessageプロパティ

 エラーメッセージで使用する文字列を設定します。

■ MaximumValuプロパティ

 検証範囲の最大値を設定します。

■ MinimumValuプロパティ

 検証範囲の最小値を設定します。

■ RegularExpressionValidatorコントロール

RegularExpressionValidatorコントロール

 正規表現を利用して、ユーザーの入力が電話番号、郵便番号、電子メール、アドレスなど、定義済みパターンに一致することを検証します。

■ 主なプロパティ

■ ControlToValidateプロパティ

 検証するコントロールのIDを設定します。

■ ErrorMessageプロパティ

 エラーメッセージで使用する文字列を設定します。

■ ValidationExpressionプロパティ

 検証に使用するパターンを表す正規表現を設定します。

■ CompareValidatorコントロール

CompareValidatorコントロール

 ユーザーが入力したデータを、他のコントロールの値か、定数で比較をします。

■ 主なプロパティ

■ ControlToCompareプロパティ

 検証するコントロールと比較するコントロールを設定します。

■ ControlToValidateプロパティ

 検証するコントロールのIDを設定します。

■ ErrorMessageプロパティ

 エラーメッセージで使用する文字列を設定します。

■ Operatorプロパティ

 検証実行する比較演算子を設定します。

■ ValueToCompareプロパティ

 検証するコントロールにユーザーが入力した値の比較対象となる定数値を設定します。

■ CustomValidatorコントロール

CustomValidatorコントロール

 ユーザーが入力したデータに対して、ユーザー定義の検証を行います。

■ 主なプロパティ

■ ClientValidationFunctionプロパティ

 検証に使用するカスタムクライアント側スクリプト関数名を設定します。

■ ControlToValidateプロパティ

 検証するコントロールのIDを設定します。

■ ErrorMessageプロパティ

 エラーメッセージで使用する文字列を設定します。

■ ValidationSummaryコントロール

ValidationSummaryコントロール

 Webページの検証エラーを表示します。

■ 主なプロパティ

■ DisplayModeプロパティ

 検証の概要の表示モードを設定します。

■ ShowMessageBoxプロパティ

 検証の概要をメッセージボックスに表示するかどうかを設定します。

■ ShowSummaryプロパティ

 検証の概要をインライン表示するかどうかを設定します。

○ プロジェクト

 プロジェクトを作成して確認してみましょう。

プロジェクトの種類 ASP.NET Webアプリケーション
プロジェクト名 ValidaterTest

サンプルダウンロード

○ デザイン

 Webフォームを追加して、次の図のように各コントロールを配置してください。

コントロールの配置例
コントロールの配置例

○ プログラム

 次のように各イベントハンドラを記述してください。

Default.aspx.vb

  1. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  2.  If Not IsPostBack Then
  3.   'TextBox.Textプロパティを設定する
  4.   TextBox1.Text = ""
  5.   TextBox2.Text = "6"
  6.   TextBox3.Text = "-8"
  7.   TextBox4.Text = "abc3"
  8.   TextBox5.Text = "4"
  9.   Button1.Text = "ポストバック"
  10.   'RequireFieldValidatorコントロールでTextBox1に何らかの値が入力されているかどうかを検証
  11.   With RequiredFieldValidator1
  12.    .ControlToValidate = "TextBox1"
  13.    .InitialValue = ""
  14.    .ErrorMessage = "値が入力されていません。"
  15.    .ForeColor = Drawing.Color.Red
  16.   End With
  17.   'CompareValidatorコントロールでTextBox2に入力された値が5より小さいかどうかを検証
  18.   With CompareValidator1
  19.    .ControlToValidate = "TextBox2"
  20.    .ValueToCompare = 5
  21.    .Type = ValidationDataType.Integer
  22.    .Operator = ValidationCompareOperator.LessThan
  23.    .ErrorMessage = "値が5以上です。"
  24.    .ForeColor = Drawing.Color.Red
  25.   End With
  26.   'RangeValidatorコントロールでTextBox3に入力された値が1以上5以下の
  27.   '範囲にあるかどうかを検証
  28.   With RangeValidator1
  29.    .ControlToValidate = "TextBox3"
  30.    .MinimumValue = 1
  31.    .MaximumValue = 5
  32.    .Type = ValidationDataType.Integer
  33.    .ErrorMessage = "値が1以上5以下の範囲にありません。"
  34.    .ForeColor = Drawing.Color.Red
  35.   End With
  36.   'RegularExpressionValidatorコントロールで
  37.   'TextBox4に入力された値がアルファベットだけで構成されているかどうかを検証
  38.   With RegularExpressionValidator1
  39.    .ControlToValidate = "TextBox4"
  40.    .ValidationExpression = "[A-Za-z]*"
  41.    .ErrorMessage = "アルファベット以外の文字が入力されています。"
  42.    .ForeColor = Drawing.Color.Red
  43.   End With
  44.   'CustomValidatorコントロールでTextBox5に入力された値が
  45.   '奇数であるかどうかをクライアントサイドの関数で検証
  46.   With CustomValidator1
  47.    .ControlToValidate = "TextBox5"
  48.    .ClientValidationFunction = "checkData"
  49.    .ErrorMessage = "値は偶数です。"
  50.    .ForeColor = Drawing.Color.Red
  51.   End With
  52.   'ValidationSummaryコントロールを使って、検証サーバコントロールで発生したエラーの一覧を表示
  53.   With ValidationSummary1
  54.    .DisplayMode = ValidationSummaryDisplayMode.BulletList
  55.    .HeaderText = "[検証サーバコントロールで発生したエラーの一覧]"
  56.   End With
  57.  End If
  58. End Sub

 HTMLのHEAD部分に次のプログラムを記述してください。

Default.aspx

  1. <head runat="server">
  2.  <title></title>
  3.  <!-- CustomValidatorコントロールに検証結果を返すスクリプト関数 -->
  4.   <script type="text/javascript">
  5.    function checkData(source, arguments) {
  6.     //CustomeValidatorコントロールに検証結果を返す
  7.     if ((arguments.Value % 2) == 1) {
  8.      arguments.IsValid = true;
  9.     } else {
  10.      arguments.IsValid = false;
  11.     }
  12.    }
  13.   </script>
  14.  </head>

○ 実行結果

実行結果
実行結果

 検証エラーになるデータを各テキストボックスに設定しました。正しいデータに入力しなおすと、検証エラーのメッセージが消えていくのを確認することができます。

前へ   次へ