您的位置:首页 > 编程语言 > ASP

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

2009-12-15 10:10 543 查看
使用 CompareValidator 控件将由用户输入到输入控件(例如 TextBox 控件)的值与输入到其他输入控件的值或常数值进行比较。如果输入控件的值符合 Operator、ValueToCompare 及/或 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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐