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 控件)的值与输入到其他输入控件的值或常数值进行比较。还可以使用 CompareValidator 控件来指示输入到输入控件中的值是否可以转换为 BaseCompareValidator.Type 属性所指定的数据类型。

通过设置 ControlToValidate 属性指定要验证的输入控件。如果要将特定输入控件与其他输入控件进行比较,请设置 ControlToCompare 属性以指定要与之比较的控件。

提示

如果输入到 ControlToCompare 属性所指定的输入控件中的值无法转换为 BaseCompareValidator.Type 属性所指定的数据类型,而输入到 ControlToValidate 属性所指定的输入控件中的值可以转换,则所验证的输入控件将被视为有效。因此,您还应在 ControlToCompare 属性所指定的输入控件上放置 CompareValidatorRangeValidator 控件。

还可以将输入控件的值与常数值进行比较,而不是将一个输入控件的值与其他输入控件的值进行比较。通过设置 ValueToCompare 属性指定要与之比较的常数值。

提示

如果 ValueToCompare 属性指定的值无法转换为 BaseCompareValidator.Type 属性指定的数据类型,将引发异常。在以编程方式将该值分配给 ValueToCompare 属性之前,一定要检查该值的数据类型。

提示

请勿同时设置 ControlToCompareValueToCompare 属性。既可以将输入控件的值与另一个输入控件的值进行比较,也可以将其与常数值进行比较。如果同时设置了这两个属性,则 ControlToCompare 属性优先。

使用 Operator 属性指定要执行的比较的类型,如大于、等于等等。如果将 Operator 属性设置为 ValidationCompareOperator.DataTypeCheck,则 CompareValidator 控件忽略 ControlToCompareValueToCompare 属性,并且仅指示输入到输入控件中的值是否可以转换为 BaseCompareValidator.Type 属性指定的数据类型。

BaseCompareValidator.Type 属性用于指定两个比较值的数据类型。在执行比较操作前,两个值都自动转换为此数据类型。下表列出了可以比较的各种数据类型。

数据类型

说明

String

字符串数据类型。

Integer

32 位有符号整数数据类型。

Double

双精度浮点数数据类型。

Date

日期数据类型。

Currency

一种可以包含货币符号的十进制数据类型。

提示

如果输入控件为空,则不会调用任何验证函数,并且验证将成功。使用 RequiredFieldValidator 控件要求用户在输入控件中输入数据。

有关验证控件的更多信息,请参见 BaseValidator

辅助功能

默认情况下为此控件呈现的标记可能不符合 Web 内容辅助功能准则 1.0 (WCAG) 中优先级为 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 控件来比较两个 TextBox 控件中的值。

<%@ Page Language="VB" AutoEventWireup="True" %>
 
<html>
<head>
   <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 runat=server>

      <h3>CompareValidator Example</h3>
      <p>
      Enter a value in each textbox. Select a comparison operator<br>
      and data type. Click "Validate" to compare values.
 
      <table bgcolor="#eeeeee" cellpadding=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 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"/>
               <p>
               <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 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>
<%@ Page Language="C#" AutoEventWireup="True" %>
 
<html>
<head>
   <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 runat=server>

      <h3>CompareValidator Example</h3>
      <p>
      Enter a value in each textbox. Select a comparison operator<br>
      and data type. Click "Validate" to compare values.
 
      <table bgcolor="#eeeeee" cellpadding=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 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"/>
               <p>
               <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 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>
<%@ Page Language="JScript" AutoEventWireup="True" %>
 
<html>
<head>
   <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 runat=server>

      <h3>CompareValidator Example</h3>
      <p>
      Enter a value in each textbox. Select a comparison operator<br>
      and data type. Click "Validate" to compare values.
 
      <table bgcolor="#eeeeee" cellpadding=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 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"/>
               <p>
               <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 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>

继承层次结构

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

线程安全

此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

平台

Windows 98、Windows 2000 SP4、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

CompareValidator 成员
System.Web.UI.WebControls 命名空间
BaseValidator 类
BaseCompareValidator 类
TextBox
BaseValidator.ControlToValidate 属性
ControlToCompare
ValueToCompare
Operator
BaseCompareValidator.Type 属性
RequiredFieldValidator