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 且当前日历类型为非公历时,验证程序只执行服务器端验证。验证程序客户端脚本只支持公历日历。
下表列出了可以比较的各种数据类型。
说明: 如果输入控件为空,则不会调用任何验证函数,并且验证将成功。使用 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>
还可以使用 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 | 一种可以包含货币符号的十进制数据类型。 |
说明:当使用 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>
相关文章推荐
- ASP.NET - ASP.NET 服务器控件验证类型 - CustomValidator 类
- ASP.NET - ASP.NET 服务器控件验证类型 - RequiredFieldValidator 类
- ASP.NET - 如何:对照数据类型验证 ASP.NET 服务器控件
- ASP.NET - ASP.NET 服务器控件验证类型 - RangeValidator 类
- ASP.NET - ASP.NET 服务器控件验证类型 - RegularExpressionValidator 类
- 禁用ASP.NET 服务器控件的验证
- ASP.NET上传到服务器上验证控件无效
- ASP.NET - 如何:对照取值范围验证 ASP.NET 服务器控件
- ASP.NET 2.0服务器控件之验证控件示例
- ASP.NETWeb服务器验证控件如何使用
- ASP.NET - 如何:对照数据库中的值验证 ASP.NET 服务器控件
- asp.net服务器验证控件失效的问题
- Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库 自定义日志记录功能,按日记录,很方便 C#常量和字段以及各种方法的语法总结 类型,对象,线程栈,托管堆在运行时的关系,以及clr如何调用静态方法,实例方法,和虚方法 asp.net webapi 自定义身份验证
- 如何:使用自定义函数对 ASP.NET 服务器控件进行验证
- ASP.NET - 如何:使用自定义函数对 ASP.NET 服务器控件进行验证
- ASP.NET - 如何:禁用 ASP.NET 服务器控件验证
- asp.net服务器验证控件失效的问题
- 如何:使用自定义函数对 ASP.NET 服务器控件进行验证
- ASP.NET - 如何:以编程方式验证 ASP.NET 服务器控件
- ASP.NET 2.0服务器控件之实现验证控件