通过使用 ASP.NET 验证控件,可以使用逻辑运算符对照一个特定值来验证用户输入。例如,您可以指定用户输入必须是“1950 年 1 月 1 日”之后的日期,或是一个大于等于 0 的整数值。或者,您还可以指定将用户输入与另一控件的值进行比较。
1、将 CompareValidator 控件添加到页中并设置下列属性:
属性 | 说明 |
用户必须为其提供值的控件的 ID。 | |
一些属性,用于指定在用户跳过控件时显示的错误的文字内容和位置。 |
2、通过设置以下属性来设置要比较的值:
属性 | 说明 |
- 或 - | 以字符串形式输入的表达式。要与常数值进行比较,可设置 ValueToCompare 属性。要与另一个控件的值进行比较,请将 ControlToCompare 属性设置为该控件的 ID。(CompareValidator 控件将用户输入与其他控件的 ValidationPropertyAttribute 指定的任何属性进行比较)。如果同时设置 ValueToCompare 和 ControlToCompare,则 ControlToCompare 优先。 |
要比较的两个值的数据类型。类型使用 ValidationDataType 枚举指定,该枚举允许您使用 String、Integer、Double、Date 或 Currency 类型名。在执行比较之前,值将转换为此类型。 | |
要使用的比较。指定一个运算符,该运算符使用 ValidationCompareOperator 枚举中定义的下列值之一: · Equal · NotEqual · LessThan |
说明: 在对另一控件的验证完成后,将忽略其他控件中的无效值并通过验证。
3、在代码中添加测试,以检查有效性。
下面的代码示例演示一个使用 CompareValidator 控件进行验证的 TextBox 控件。
<table>
<tr>
<td>
<asp:Textbox id="txtAge" runat="server"></asp:Textbox>
</td>
<td>
<asp:CompareValidator id="CompareFieldValidator1" runat="server"
ForeColor="Red"
ControlToValidate="txtAge"
ValueToCompare="0"
Type="Integer"
Operator="GreaterThanEqual"
ErrorMessage="Please enter a whole number zero or greater.">
</asp:CompareValidator >
</td>
</tr>
</table>
下面的代码示例演示将用户输入与另一控件的值进行比较的 CompareValidator。用户可以使用此页预定酒店房间。验证程序检查用户是否输入了早于到达日期的离开日期。(在实际的应用程序中,离开日期是必需的信息,并且也作为日期进行验证。)
<table>
<tr>
<td>
Arrive<asp:Textbox id="txtArrivalDate" runat="server"></asp:Textbox>
Depart<asp:Textbox id="txtDepartureDate" runat="server"></asp:Textbox>
</td>
<td>
<asp:CompareValidator id="CompareValidator1" runat="server"
ForeColor="Red"
ControlToValidate="txtDepartureDate"
ControlToCompare="txtArrivalDate"
Type="Date"
Operator="GreaterThanEqual"
ErrorMessage="Departure date cannot be earlier than arrival date.">
</asp:CompareValidator >
</td>
</tr>
</table>