更新:2007 年 11 月
通过使用 ASP.NET 验证控件,可以使用逻辑运算符对照一个特定值来验证用户输入。例如,您可以指定用户输入必须是“1950 年 1 月 1 日”之后的日期,或是一个大于等于 0 的整数值。或者,您还可以指定将用户输入与另一控件的值进行比较。
![]() |
---|
ASP.NET 网页中的用户输入可能包括潜在有害的客户端脚本。有关更多信息,请参见脚本侵入概述。 |
对照特定值进行验证
将 CompareValidator 控件添加到页中并设置下列属性:
属性
说明
用户必须为其提供值的控件的 ID。
一些属性,用于指定在用户跳过控件时显示的错误的文字内容和位置。有关详细信息,请参见如何:控制 ASP.NET 服务器控件的验证错误信息显示。
通过设置以下属性来设置要比较的值:
属性
说明
- 或 -
以字符串形式输入的表达式。要与常数值进行比较,可设置 ValueToCompare 属性。要与另一个控件的值进行比较,请将 ControlToCompare 属性设置为该控件的 ID。(CompareValidator 控件将用户输入与其他控件的 ValidationPropertyAttribute 指定的任何属性进行比较)。如果同时设置 ValueToCompare 和 ControlToCompare,则 ControlToCompare 优先。
要比较的两个值的数据类型。类型使用 ValidationDataType 枚举指定,该枚举允许您使用 String、Integer、Double、Date 或 Currency 类型名。在执行比较之前,值将转换为此类型。有关更多信息,请参见如何:对照数据类型验证 ASP.NET 服务器控件。
要使用的比较。指定一个运算符,该运算符使用 ValidationCompareOperator 枚举中定义的下列值之一:
说明:
在对另一控件的验证完成后,将忽略其他控件中的无效值并通过验证。有关详细信息,请参见 ASP.NET 服务器控件的特例验证结果。
在代码中添加测试,以检查有效性。有关详细信息,请参见如何:以编程方式测试 ASP.NET 服务器控件的有效性。
下面的代码示例演示一个使用 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>
<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>
<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>