ASP.NET CompareValidator 控件


定义和用法

CompareValidator 控件用于将一个输入控件的值与另一个输入控件的值或常数值进行比较。

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

属性

属性描述
BackColorCompareValidator 控件的背景颜色。
ControlToCompare要与所验证的控件进行比较的控件名称。
ControlToValidate要验证的控件的 id。
Display验证控件的显示行为。合法值有:
  • None - 控件不显示。仅用于 ValidationSummary 控件中显示错误消息。
  • 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一个常数值,该值要与由用户输入到所验证的输入控件中的值进行比较。

实例

CompareValidator

<!DOCTYPE html>
<html>
<body>

<form runat="server">
<table border="0" bgcolor="#b0c4de">
   <tr valign="top">
     <td colspan="4"><h4>Compare two values</h4></td>
   </tr> 
   <tr valign="top">
     <td><asp:TextBox id="txt1" runat="server" /></td>
     <td> = </td>
     <td><asp:TextBox id="txt2" runat="server" /></td>
     <td><asp:Button Text="Validate" runat="server" /></td>
   </tr>
</table>
<br>
<asp:CompareValidator
id="compval" 
Display="dynamic"
ControlToValidate="txt1" 
ControlToCompare="txt2" 
ForeColor="red" 
BackColor="yellow" 
Type="String"
EnableClientScript="false" 
Text="Validation Failed!" 
runat="server" />
</form>

</body>
</html>

在本例中,我们在 .aspx 文件中声明了两个 TextBox 控件,一个 Button 控件,和一个 CompareValidator 控件。如果验证失败,将在 CompareValidator 控件中使用黄色背景红色字体显示 "Validation Failed!" 文本。

CompareValidator 2

<script  runat="server">
sub check_operator(sender As Object, e As EventArgs) 
   compval.Operator=CType(list.SelectedIndex,ValidationCompareOperator)
   compval.Validate()
end sub
</script>

<!DOCTYPE html>
<html>
<body>

<form runat="server">
<table border="0" bgcolor="#b0c4de">
   <tr valign="top">
     <td colspan="4"><h4>Compare two values</h4></td>
   </tr> 
   <tr valign="top">
     <td><asp:TextBox id="txt1" runat="server" /></td>
     <td>
     <asp:ListBox id="list" rows="2" OnSelectedIndexChanged="check_operator" runat="server">
           <asp:ListItem value="Equal" selected>=</asp:ListItem>
           <asp:ListItem value="NotEqual"><></asp:ListItem>
     </asp:ListBox>
     </td>
     <td><asp:TextBox id="txt2" runat="server" /></td>
     <td><asp:Button Text="Validate" runat="server" /></td>
   </tr>
</table>
<br>
<asp:CompareValidator
id="compval" 
Display="dynamic"
ControlToValidate="txt1" 
ControlToCompare="txt2" 
ForeColor="red" 
BackColor="yellow" 
Type="String"
EnableClientScript="false" 
Text="Validation Failed!" 
runat="server" />
</form>

</body>
</html>

在本例中,我们在 .aspx 文件中声明了两个 TextBox 控件,一个 ListBox 控件,一个 Button 控件,和一个 CompareValidator 控件。check_operator() 函数把 ListBox 控件中选取的运算符设置为 CompareValidator 控件的运算符,然后对 CompareValidator 控件进行验证。如果验证失败,将在 CompareValidator 控件中使用黄色背景红色字体显示 "Validation Failed!" 文本。