ASP.NET - ASP.NET 服务器控件验证类型 - CompareValidator 类

使用 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 属性用于指定两个比较值的数据类型。在执行比较操作前,两个值都自动转换为此数据类型。

      重要说明: Type 属性设置为 Date 且当前日历类型为非公历时,验证程序只执行服务器端验证。验证程序客户端脚本只支持公历日历。

下表列出了可以比较的各种数据类型。

数据类型

说明

String

字符串数据类型。

Integer

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

Double

双精度浮点数数据类型。

Date

日期数据类型。

Currency

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

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

说明:当使用 UpdatePanel 控件内部的 CompareValidator 控件时,请确保该验证程序控件与关联的控件位于同一面板中。

示例

下面的代码示例演示如何使用 CompareValidator 控件来比较两个 TextBox 控件中的值。

<%@ 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  >

<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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
常用的服务器端数据验证控件 RequiredFieldValidator(必须项); CompareValidator(与某值的比较); RangeValidator(范围检查); RegularExpressionValidator(模式匹配); CustomValidator(用户定义); ValidationSummary控件用于在网页、消息框或在这两者中内联显示所有验证错误的摘要 RequiredFieldValidator控件默认检查非空字符串(空格不算在内)。在RequiredFieldValidator关联的表单字段中输入任何字符,该RequiredFieldValidator控件就不会显示它的验证错误信息。 RequiredFieldValidator控件用于要求用户在提交表单前为表单字段输入值。使用Required- FieldValidator控件时,必须设置两个重要的属性: ControlToValidate——被验证的表单字段的ID。 Text——验证失败时显示的错误信息。 RangeValidator控件用于检测表单字段的值是否在指定的最小值和最大值之间。使用这个控件时,必须设置5个属性: ControlToValidate——被验证的表单字段的ID。 Text——验证失败时显示的错误信息。 MinimumValue——验证范围的最小值。 MaximumValue——验证范围的最大值。 Type——所执行的比较类型。可能的值有String、Integer、Double、Date和Currency。 CompareValidator控件可用于执行三种不同类型验证任务。可使用CompareValidator执行数据类型检测。换句话说,可以用它确定用户是否在表单字段中输入了类型正确的值,比如在生日数据字段输入一个日期。 也可以用CompareValidator控件在输入表单字段的值和一个固定值之间进行比较。例如,要建立一个拍卖网站,就可以用CompareValidator检查新的起价是否大于前面的起价。 最后,可以用CompareValidator控件比较一个表单字段的值与另一个表单字段的值。例如,可以使用CompareValidator控件检查输入的会议开始日期值是否小于输入的会议结束日期值。 CompareValidator控件有6个重要的属性: ControlToValidate——被验证的表单字段的ID。 Text——验证失败时显示的错误信息。 Type——比较的数据类型。可能的值有String、Integer、Double、Date和Currency。 Operator——所执行的比较的类型。可能的值有DataTypeCheck、Equal、GreaterThan、Greater- ThanEqual、LessThan、LessThanEqual和NotEqual。 ValueToCompare——所比较的固定值。 ControlToCompare——所比较的控件的ID。 RegularExpressionValidator控件用于把表单字段的值和正则表达式进行比较。正则表达式可用于表示字符串模式,比如电子邮件地址、社会保障号、电话号码、日期、货币数和产品编码。 这个控件ValidationExpression中可以输入正则表达式来控制用户输入的字符,正则表达式的用处很多。具体可以在网上自己找一些常用的正则表达式看一下 只能输入数字:"^[0-9]*$"。   只能输入n位的数字:"^\d{n}$"。   只能输入至少n位的数字:"^\d{n,}$"。 。。。。。。。。。。。。。。。。。。。。。。。。。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值