当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > Validation服务器控件:CompareValidator控件

ASP.NET
ASP.NET开发:简化应用程序的开发支持Web标准
asp.net XMLHttpRequest实现用户注册前的验证
asp.net 页面间传值方法小结
asp.net url重写浅谈
asp.net 验证码生成和刷新及验证
C#精髓 GridView72大绝技 学习gridview的朋友必看
实例说明asp.net中的简单角色权限控制
asp.net网站开发包wq.dll打包下载
js与ASP.NET 中文乱码问题
asp.net checkbox 动态绑定id GridView删除提示
asp.net TextBox回车触发事件 图片在img显示
asp.net 脏字典过滤问题 用正则表达式来过滤脏数据
asp.NET 脏字过滤算法
asp.NET 脏字过滤算法 修改版
asp.net sql 数据库处理函数命令
asp.net Javascript 的几种写法与提示
ASP.NET MVC学习笔记
asp.net 中国身份证号码验证代码 非正则
Asp.net中使用Sqlite数据库的方法
asp.net 中文字符串提交乱码的解决方法

ASP.NET 中的 Validation服务器控件:CompareValidator控件


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 203 ::
收藏到网摘: n/a

阅读此文请先查看软晨学习网的:ASP.NET入门教程:Validation服务器控件,简单讲述了Web服务器控件的使用方法。

定义和用法

CompareValidator 控件用于将由用户输入到输入控件的值与输入到其他输入控件的值或常数值进行比较。将输入控件的值同常数值或其他输入控件的值相比较,以确定这两个值是否与由比较运算符(小于、等于、大于等等)指定的关系相匹配。

注释:如果输入控件为空,则不会调用任何验证函数,并且验证将成功。使用 RequiredFieldValidator 控件使字段成为必选字段。

属性

属性 描述
BackColor CompareValidator 控件的背景颜色。
ControlToCompare 要与所验证的输入控件进行比较的输入控件。
ControlToValidate 要验证的输入控件的 ID。
Display

验证控件中错误信息的显示行为。

合法值是:

  • None 验证消息从不内联显示。
  • Static 在页面布局中分配用于显示验证消息的空间。
  • Dynamic 如果验证失败,将用于显示验证消息的空间动态添加到页面。
EnableClientScript 布尔值,规定是否启用客户端验证。
Enabled 布尔值,规定是否启用验证控件。
ErrorMessage

当验证失败时在 ValidationSummary 控件中显示的文本。

注释:如果未设置 Text 属性,此文本将显示在验证控件中。

ForeColor 控件的前景颜色。
id 控件的唯一 ID。
IsValid 布尔值,指示由 ControlToValidate 指定的输入控件是否通过验证。
Operator

要执行的比较操作的类型。

运算符是:

  • Equal
  • GreaterThan
  • GreaterThanEqual
  • LessThan
  • LessThanEqual
  • NotEqual
  • DataTypeCheck
runat 规定控件是服务器控件。必须设置为 "server"。
Text 当验证失败时显示的消息。
Type

规定要对比的值的数据类型。

类型有:

  • Currency
  • Date
  • Double
  • Integer
  • String
ValueToCompare 一个常数值,该值要与由用户输入到所验证的输入控件中的值进行比较。

语法

<asp:CompareValidator
    AccessKey="string"
    AssociatedControlID="string"
    BackColor="color name|#dddddd"
    BorderColor="color name|#dddddd"
    BorderStyle="NotSet|None|Dotted|Dashed|Solid|Double|Groove|Ridge|
        Inset|Outset"
    BorderWidth="size"
    ControlToCompare="string"
    ControlToValidate="string"
    CssClass="string"
    CultureInvariantValues="True|False"
    Display="None|Static|Dynamic"
    EnableClientScript="True|False"
    Enabled="True|False"
    EnableTheming="True|False"
    EnableViewState="True|False"
    ErrorMessage="string"
    Font-Bold="True|False"
    Font-Italic="True|False"
    Font-Names="string"
    Font-Overline="True|False"
    Font-Size="string|Smaller|Larger|XX-Small|X-Small|Small|Medium|
        Large|X-Large|XX-Large"
    Font-Strikeout="True|False"
    Font-Underline="True|False"
    ForeColor="color name|#dddddd"
    Height="size"
    ID="string"
    OnDataBinding="DataBinding event handler"
    OnDisposed="Disposed event handler"
    OnInit="Init event handler"
    OnLoad="Load event handler"
    OnPreRender="PreRender event handler"
    OnUnload="Unload event handler"
    Operator="Equal|NotEqual|GreaterThan|GreaterThanEqual|LessThan|
        LessThanEqual|DataTypeCheck"
    runat="server"
    SetFocusOnError="True|False"
    SkinID="string"
    Style="string"
    TabIndex="integer"
    Text="string"
    ToolTip="string"
    Type="String|Integer|Double|Date|Currency"
    ValidationGroup="string"
    ValueToCompare="string"
    Visible="True|False"
    Width="size"
/>

备注:CompareValidator 控件使您能够将用户输入到一个输入控件(如 TextBox 控件)中的值与输入到另一个输入控件中的值或某个常数值进行比较。还可以使用 CompareValidator 控件确定输入到输入控件中的值是否可以转换为 Type 属性指定的数据类型。

通过设置 ControlToValidate 属性来指定要验证的输入控件。如果要将特定的输入控件与另一个输入控件进行比较,请用要比较的控件的名称设置 ControlToCompare 属性。

可以将一个输入控件的值同某个常数值相比较,而不是比较两个输入控件的值。通过设置 ValueToCompare 属性来指定要比较的常数值。

Operator 属性允许您指定要执行的比较类型,如大于、等于等。如果将 Operator 属性设置为 ValidationCompareOperator.DataTypeCheck,则 CompareValidator 控件将忽略 ControlToCompare 和 ValueToCompare 属性并且只表明输入控件中输入的值是否可以转换为 Type 属性指定的数据类型。

注意:如果输入控件为空,则不调用任何验证函数且验证成功。使用 RequiredFieldValidator 控件防止用户跳过某个输入控件。

示例

下面的代码示例演示如何使用 CompareValidator 控件来验证一个文本框中输入的值是否与另一个文本框中输入的值匹配。验证结果随后显示在页上。

Visual Basic

<%@ 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)
         Compare2.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 text box. 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"/>
               <br>
               <asp:CompareValidator id="Compare1"
                    ControlToValidate="TextBox1"
                    ControlToCompare="TextBox2"
                    Type="String"
                    EnableClientScript="false"
                    Text="Failed Validation"
                    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"/>
               <br>
               <asp:CompareValidator id="Compare2"
                    ControlToValidate="TextBox2" 
                    Operator="DataTypeCheck"
                    EnableClientScript="false"
                    Text="Invalid Data Type"
                    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 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:ListBox>
            </td>
         </tr>
      </table>
      <br>      
      <asp:Label id="lblOutput"
           Font-Name="verdana"
           Font-Size="10pt"
           runat="server"/>
   </form>
</body>
</html>

C#

<%@ 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;
         Compare2.Type = (ValidationDataType)ListType.SelectedIndex;
         Compare1.Validate();
      }
   </script>
</head>
<body>
   <form runat="server">
      <h3>CompareValidator Example</h3>
      <p>
      Enter a value in each text box. 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"/>
               <br>
               <asp:CompareValidator id="Compare1"
                    ControlToValidate="TextBox1"
                    ControlToCompare="TextBox2"
                    Type="String"
                    EnableClientScript="false"
                    Text="Failed Validation"
                    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"/>
               <br>
               <asp:CompareValidator id="Compare2"
                    ControlToValidate="TextBox2" 
                    Operator="DataTypeCheck"
                    EnableClientScript="false"
                    Text="Invalid Data Type"
                    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 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:ListBox>
            </td>
         </tr>
      </table>
      <br>      
      <asp:Label id="lblOutput"
           Font-Name="verdana"
           Font-Size="10pt"
           runat="server"/>
   </form>
</body>
</html>