CompareValidator クラス

ユーザーが入力コントロールに入力した値を、別の入力コントロールに入力された値または定数値のいずれかと比較します。

名前空間: System.Web.UI.WebControls
アセンブリ: System.Web (system.web.dll 内)

構文

'宣言
Public Class CompareValidator
    Inherits BaseCompareValidator
'使用
Dim instance As CompareValidator
public class CompareValidator : BaseCompareValidator
public ref class CompareValidator : public BaseCompareValidator
public class CompareValidator extends BaseCompareValidator
public class CompareValidator extends BaseCompareValidator
適用できません。

解説

CompareValidator コントロールを使用すると、ユーザーが TextBox などの入力コントロールに入力した値を、別の入力コントロールに入力された値または定数値のいずれかと比較できます。入力コントロールの値が、OperatorValueToCompare、および ControlToCompare の各プロパティまたはそのいずれかによって指定された条件と一致する場合、CompareValidator コントロールは検証に合格します。

また CompareValidator コントロールを使用すると、入力コントロールに入力された値を BaseCompareValidator.Type プロパティが指定するデータ型に変換できるかどうか示すことができます。

ControlToValidate プロパティを設定して、検証する入力コントロールを指定します。特定の入力コントロールをほかの入力コントロールと比較する場合は、ControlToCompare プロパティを設定して比較するコントロールを指定します。

メモメモ :

ControlToCompare プロパティが指定する入力コントロールに入力された値を BaseCompareValidator.Type プロパティが指定するデータ型に変換できなくても、ControlToValidate プロパティが指定するデータ型には変換できる場合、検証対象の入力コントロールは有効と見なされます。したがって、ControlToCompare プロパティが指定した入力コントロールに、CompareValidator コントロールまたは RangeValidator コントロールを配置する必要もあります。

入力コントロールの値を別の入力コントロールの値と比較する代わりに、入力コントロールの値を定数値と比較できます。比較する定数値を指定するには、ValueToCompare プロパティを設定します。

メモメモ :

ValueToCompare プロパティが指定した値を BaseCompareValidator.Type プロパティが指定するデータ型に変換できない場合には、例外がスローされます。プログラムによって ValueToCompare プロパティに値を代入する前に、値のデータ型を確認してください。

メモメモ :

ControlToCompare プロパティと ValueToCompare プロパティを同時に設定しないでください。入力コントロールの値を別の入力コントロールまたは定数値のいずれかと比較できます。両方のプロパティを設定した場合は、ControlToCompare プロパティが優先されます。

Operator プロパティを使用して、より大きい、等しいなどの実行する比較の型を指定します。Operator プロパティを ValidationCompareOperator.DataTypeCheck に設定すると、CompareValidator コントロールは ControlToCompare プロパティと ValueToCompare プロパティを無視し、入力コントロールに入力された値を BaseCompareValidator.Type プロパティが指定するデータ型に変換できるかどうかだけ示します。

BaseCompareValidator.Type プロパティは、2 つの比較値のデータ型を指定するのに使用されます。2 つの値は、比較演算が実行される前に指定したデータ型に自動的に変換されます。

メモ重要 :

現在のカレンダーの形式がグレゴリオ暦でない場合に Type プロパティを Date に設定すると、検証コントロールはサーバー側の検証だけを実行します。検証コントロールのクライアント スクリプトでは、グレゴリオ暦だけがサポートされます。

比較できる各種のデータ型の一覧を次の表に示します。

データ型

説明

String

文字列型

Integer

32 ビット符号付き整数型

Double

倍精度浮動小数点数型

Date

日付型

Currency

通貨記号を含めることができる 10 進数データ型

メモメモ :

入力コントロールが空の場合、検証関数は呼び出されず、検証は成功します。RequiredFieldValidator コントロールを使用すると、データを入力コントロールに入力するようにユーザーに要求します。

検証コントロールの詳細については、「BaseValidator」を参照してください。

ユーザー補助

このコントロールに既定でレンダリングされるマークアップは、Web Content Accessibility Guidelines (WCAG) 1.0 の優先度 1 ガイドラインなどのユーザー補助に関する標準に適合しない可能性があります。このコントロールのユーザー補助サポートの詳細については、「ASP.NET コントロールとユーザー補助」を参照してください。

トピック 場所
方法 : ASP.NET サーバー コントロールのデータベースの値を検証する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールの値の範囲を検証する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールの固有の値を検証する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールのデータ型を検証する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールの埋め込み先メッセージのレイアウトを指定する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールに必要なエントリを検証する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールのサーバー側のカスタム検証メッセージを表示する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールの有効性をプログラムでテストする Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールのパターンに対して検証する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールをプログラムで検証する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールの検証エラー メッセージの書式を設定する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールをカスタム関数で検証する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールの検証を無効にする Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールのデータベースの値を検証する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールの値の範囲を検証する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールの固有の値を検証する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールのデータ型を検証する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールの埋め込み先メッセージのレイアウトを指定する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールに必要なエントリを検証する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールのサーバー側のカスタム検証メッセージを表示する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールの有効性をプログラムでテストする Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールのパターンに対して検証する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールをプログラムで検証する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールの検証エラー メッセージの書式を設定する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールをカスタム関数で検証する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールの検証を無効にする Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールのデータベースの値を検証する ASP .NET Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールの値の範囲を検証する ASP .NET Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールの固有の値を検証する ASP .NET Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールのデータ型を検証する ASP .NET Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールの埋め込み先メッセージのレイアウトを指定する ASP .NET Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールに必要なエントリを検証する ASP .NET Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールのサーバー側のカスタム検証メッセージを表示する ASP .NET Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールの有効性をプログラムでテストする ASP .NET Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールのパターンに対して検証する ASP .NET Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールをプログラムで検証する ASP .NET Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールの検証エラー メッセージの書式を設定する ASP .NET Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールをカスタム関数で検証する ASP .NET Web アプリケーションの作成
方法 : ASP.NET サーバー コントロールの検証を無効にする ASP .NET Web アプリケーションの作成

使用例

CompareValidator コントロールを使用して、2 つの TextBox コントロールの値を比較する方法を次のコード例に示します。

セキュリティに関するメモセキュリティに関するメモ :

この例には、ユーザー入力を受け付けるテキスト ボックスがあります。これにより、セキュリティが脆弱になる可能性があります。既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。詳細については、「スクリプトによる攻略の概要」を参照してください。

<%@ Page Language="VB" AutoEventWireup="True" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>CompareValidator Example</title>
<script runat="server">
 
      Sub Button_Click(sender As Object, e As EventArgs) 
 
         If Page.IsValid Then 
         
            lblOutput.Text = "Result: Valid!"
         
         Else 
         
            lblOutput.Text = "Result: Not valid!"
         
         End If

      End Sub
 
      Sub Operator_Index_Changed(sender As Object, e As EventArgs) 

         Compare1.Operator = CType(ListOperator.SelectedIndex, ValidationCompareOperator)
         Compare1.Validate()

      End Sub

      Sub Type_Index_Changed(sender As Object, e As EventArgs) 

         Compare1.Type = CType(ListType.SelectedIndex, ValidationDataType)
         Compare1.Validate()

      End Sub
 
   </script>
 
</head>
<body>
 
   <form id="form1" runat="server">

      <h3>CompareValidator Example</h3>
      <br />
      Enter a value in each textbox. Select a comparison operator<br />
      and data type. Click "Validate" to compare values.
 
      <table style="background-color:#eeeeee; padding:10">

         <tr valign="top">

            <td>

               <h5>String 1:</h5>
               <asp:TextBox id="TextBox1" 
                    runat="server"/>

            </td>

            <td>

               <h5>Comparison Operator:</h5>
 
               <asp:ListBox id="ListOperator" 
                    OnSelectedIndexChanged="Operator_Index_Changed" 
                    runat="server">

                  <asp:ListItem Selected="True" Value="Equal">Equal</asp:ListItem>
                  <asp:ListItem Value="NotEqual">NotEqual</asp:ListItem>
                  <asp:ListItem Value="GreaterThan">GreaterThan</asp:ListItem>
                  <asp:ListItem Value="GreaterThanEqual">GreaterThanEqual</asp:ListItem>
                  <asp:ListItem Value="LessThan">LessThan</asp:ListItem>
                  <asp:ListItem Value="LessThanEqual">LessThanEqual</asp:ListItem>
                  <asp:ListItem Value="DataTypeCheck">DataTypeCheck</asp:ListItem>

               </asp:ListBox>

            </td>

            <td>

               <h5>String 2:</h5>
               <asp:TextBox id="TextBox2" 
                    runat="server"/>
               <br />
               <asp:Button id="Button1"
                    Text="Validate"  
                    OnClick="Button_Click" 
                    runat="server"/>

            </td>
         </tr>

         <tr>
            <td colspan="3" align="center">

               <h5>Data Type:</h5>

               <asp:ListBox id="ListType" 
                    OnSelectedIndexChanged="Type_Index_Changed" 
                    runat="server">

                  <asp:ListItem Selected="true" Value="String" >String</asp:ListItem>
                  <asp:ListItem Value="Integer" >Integer</asp:ListItem>
                  <asp:ListItem Value="Double" >Double</asp:ListItem>
                  <asp:ListItem Value="Date" >Date</asp:ListItem>
                  <asp:ListItem Value="Currency" >Currency</asp:ListItem>

               </asp:ListBox>
            </td>
         </tr>
      </table>
 
      <asp:CompareValidator id="Compare1" 
           ControlToValidate="TextBox1" 
           ControlToCompare="TextBox2"
           EnableClientScript="False" 
           Type="String" 
           runat="server"/>
 
      <br />
       
      <asp:Label id="lblOutput" 
           Font-Names="verdana" 
           Font-Size="10pt" 
           runat="server"/>
 
   </form>
 
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="True" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>CompareValidator Example</title>
<script runat="server">
 
      void Button_Click(Object sender, EventArgs e) 
      {
 
         if (Page.IsValid) 
         {
            lblOutput.Text = "Result: Valid!";
         }
         else 
         {
            lblOutput.Text = "Result: Not valid!";
         }

      }
 
      void Operator_Index_Changed(Object sender, EventArgs e) 
      {

         Compare1.Operator = (ValidationCompareOperator) ListOperator.SelectedIndex;
         Compare1.Validate();

      }

      void Type_Index_Changed(Object sender, EventArgs e) 
      {

         Compare1.Type = (ValidationDataType) ListType.SelectedIndex;
         Compare1.Validate();

      }
 
   </script>
 
</head>
<body>
 
   <form id="form1" runat="server">

      <h3>CompareValidator Example</h3>
      <br />
      Enter a value in each textbox. Select a comparison operator<br />
      and data type. Click "Validate" to compare values.
 
      <table style="background-color:#eeeeee; padding:10">

         <tr valign="top">

            <td>

               <h5>String 1:</h5>
               <asp:TextBox id="TextBox1" 
                    runat="server"/>

            </td>

            <td>

               <h5>Comparison Operator:</h5>
 
               <asp:ListBox id="ListOperator" 
                    OnSelectedIndexChanged="Operator_Index_Changed" 
                    runat="server">

                  <asp:ListItem Selected="True" Value="Equal">Equal</asp:ListItem>
                  <asp:ListItem Value="NotEqual">NotEqual</asp:ListItem>
                  <asp:ListItem Value="GreaterThan">GreaterThan</asp:ListItem>
                  <asp:ListItem Value="GreaterThanEqual">GreaterThanEqual</asp:ListItem>
                  <asp:ListItem Value="LessThan">LessThan</asp:ListItem>
                  <asp:ListItem Value="LessThanEqual">LessThanEqual</asp:ListItem>
                  <asp:ListItem Value="DataTypeCheck">DataTypeCheck</asp:ListItem>

               </asp:ListBox>

            </td>

            <td>

               <h5>String 2:</h5>
               <asp:TextBox id="TextBox2" 
                    runat="server"/>
               <br />
               <asp:Button id="Button1"
                    Text="Validate"  
                    OnClick="Button_Click" 
                    runat="server"/>

            </td>
         </tr>

         <tr>
            <td colspan="3" align="center">

               <h5>Data Type:</h5>

               <asp:ListBox id="ListType" 
                    OnSelectedIndexChanged="Type_Index_Changed" 
                    runat="server">

                  <asp:ListItem Selected="true" Value="String" >String</asp:ListItem>
                  <asp:ListItem Value="Integer" >Integer</asp:ListItem>
                  <asp:ListItem Value="Double" >Double</asp:ListItem>
                  <asp:ListItem Value="Date" >Date</asp:ListItem>
                  <asp:ListItem Value="Currency" >Currency</asp:ListItem>

               </asp:ListBox>
            </td>
         </tr>
      </table>
 
      <asp:CompareValidator id="Compare1" 
           ControlToValidate="TextBox1" 
           ControlToCompare="TextBox2"
           EnableClientScript="False" 
           Type="String" 
           runat="server"/>
 
      <br />
       
      <asp:Label id="lblOutput" 
           Font-Names="verdana" 
           Font-Size="10pt" 
           runat="server"/>
 
   </form>
 
</body>
</html>
<%@ Page Language="JScript" AutoEventWireup="True" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>CompareValidator Example</title>
<script runat="server">
 
      function Button_Click(sender, e : EventArgs) 
      {
 
         if (Page.IsValid) 
         {
            lblOutput.Text = "Result: Valid!";
         }
         else 
         {
            lblOutput.Text = "Result: Not valid!";
         }

      }
 
      function Operator_Index_Changed(sender, e : EventArgs) 
      {

         Compare1.Operator = ValidationCompareOperator(ListOperator.SelectedIndex);
         Compare1.Validate();

      }

      function Type_Index_Changed(sender, e : EventArgs) 
      {

         Compare1.Type = ValidationDataType(ListType.SelectedIndex);
         Compare1.Validate();

      }
 
   </script>
 
</head>
<body>
 
   <form id="form1" runat="server">

      <h3>CompareValidator Example</h3>
      <br />
      Enter a value in each textbox. Select a comparison operator<br />
      and data type. Click "Validate" to compare values.
 
      <table style="background-color:#eeeeee; padding:10">

         <tr valign="top">

            <td>

               <h5>String 1:</h5>
               <asp:TextBox id="TextBox1" 
                    runat="server"/>

            </td>

            <td>

               <h5>Comparison Operator:</h5>
 
               <asp:ListBox id="ListOperator" 
                    OnSelectedIndexChanged="Operator_Index_Changed" 
                    runat="server">

                  <asp:ListItem Selected="true" Value="Equal">Equal</asp:ListItem>
                  <asp:ListItem Value="NotEqual">NotEqual</asp:ListItem>
                  <asp:ListItem Value="GreaterThan">GreaterThan</asp:ListItem>
                  <asp:ListItem Value="GreaterThanEqual">GreaterThanEqual</asp:ListItem>
                  <asp:ListItem Value="LessThan">LessThan</asp:ListItem>
                  <asp:ListItem Value="LessThanEqual">LessThanEqual</asp:ListItem>
                  <asp:ListItem Value="DataTypeCheck">DataTypeCheck</asp:ListItem>

               </asp:ListBox>

            </td>

            <td>

               <h5>String 2:</h5>
               <asp:TextBox id="TextBox2" 
                    runat="server"/>
               <br />
               <asp:Button id="Button1"
                    Text="Validate"  
                    OnClick="Button_Click" 
                    runat="server"/>

            </td>
         </tr>

         <tr>
            <td colspan="3" align="center">

               <h5>Data Type:</h5>

               <asp:ListBox id="ListType" 
                    OnSelectedIndexChanged="Type_Index_Changed" 
                    runat="server">

                  <asp:ListItem Selected="true" Value="String" >String</asp:ListItem>
                  <asp:ListItem Value="Integer" >Integer</asp:ListItem>
                  <asp:ListItem Value="Double" >Double</asp:ListItem>
                  <asp:ListItem Value="Date" >Date</asp:ListItem>
                  <asp:ListItem Value="Currency" >Currency</asp:ListItem>

               </asp:ListBox>
            </td>
         </tr>
      </table>
 
      <asp:CompareValidator id="Compare1" 
           ControlToValidate="TextBox1" 
           ControlToCompare="TextBox2"
           EnableClientScript="False" 
           Type="String" 
           runat="server"/>
 
      <br />
       
      <asp:Label id="lblOutput" 
           Font-Name="verdana" 
           Font-Size="10pt" 
           runat="server"/>
 
   </form>
 
</body>
</html>

.NET Framework のセキュリティ

  • AspNetHostingPermission  (ホスト環境での動作に必要なアクセス許可)。要求値 : LinkDemand。アクセス許可値 : Minimal
  • AspNetHostingPermission  (ホスト環境での動作に必要なアクセス許可)。要求値 : InheritanceDemand。アクセス許可値 : Minimal

継承階層

System.Object
   System.Web.UI.Control
     System.Web.UI.WebControls.WebControl
       System.Web.UI.WebControls.Label
         System.Web.UI.WebControls.BaseValidator
           System.Web.UI.WebControls.BaseCompareValidator
            System.Web.UI.WebControls.CompareValidator

スレッド セーフ

この型の public static (Visual Basicでは共有) メンバはすべて,スレッド セーフです。インスタンス メンバの場合は,スレッド セーフであるとは限りません。

プラットフォーム

Windows 98,Windows Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition

Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。

バージョン情報

.NET Framework

サポート対象 : 3.0,2.0,1.1,1.0

参照

関連項目

CompareValidator メンバ
System.Web.UI.WebControls 名前空間
BaseValidator
BaseCompareValidator
TextBox
BaseValidator.ControlToValidate プロパティ
ControlToCompare
ValueToCompare
Operator
BaseCompareValidator.Type プロパティ
RequiredFieldValidator