Validating Against a Specific Value for ASP.NET Server Controls
You can validate a user's entry against a specific single value using logical operators. For example, you can specify that the user's entry is a date after January 1, 1950 or that it is an integer value greater than or equal to zero. Alternatively, you can specify that the user's entry be compared against a value from another control.
Security Note User input in a Web Forms page can include potentially malicious client script. By default, the Web Forms page validates that user input does not include script or HTML elements. For more information, see Scripting Exploits and Protecting Against Script Exploits in a Web Application.
To validate against a specific value
- Add a CompareValidator control to the page and set the following properties:
Property Description ControlToValidate The ID of the control to validate. ErrorMessage, Text, Display Properties that specify the text and location of the error or errors that will appear if the validation fails. For details, see Controlling Validation Error Message Display for ASP.NET Server Controls.
- Set the value to compare to by setting the following properties:
Property Description ValueToCompare
- or -
An expression entered as a string. To compare to a constant value, set the ValueToCompare property. To compare against the value of another control, set the ControlToCompare property to the ID of that control (the CompareValidator control compares the user's entry against whatever property is specified by the other control's ValidationPropertyAttribute). If you set both ValueToCompare and ControlToCompare, ControlToCompare takes precedence. Type The data type of the two values to be compared. Types are specified using the ValidationDataType enumeration, which allows you to use the type name String, Integer, Double, Date, or Currency. The values are converted to this type before the comparison is performed. Operator The comparison to use. Operators are specified using the ValidationCompareOperator enumeration, which allows you to enter the name of the comparison operators, such as Equal, NotEqual, GreaterThan, GreaterThanEqual, and so on.Note When validation is done against another control, invalid values in the other control are ignored and the validation passes. For details, see Special-Case Validation Results for ASP.NET Server Controls.
- Add a test in your Web Forms code to check for validity. For details, see Testing Validity Programmatically for ASP.NET Server Controls.
The following example shows the .aspx file of a Web Forms Textbox control with a CompareValidator control. A table is used to handle layout.
<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>
The following example shows a CompareValidator that compares the user's entry against the value in another control. In a form that allows users to make reservations at a hotel, the validator checks that the user does not enter a departure date earlier than the arrival date. (In a real application, the departure date would be required and validated as a date as well.)
<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="CompareFieldValidator1" 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>
Introduction to Validating User Input in Web Forms | Controlling Validation Error Message Display for ASP.NET Server Controls | Validating Required Entries for ASP.NET Server Controls | Validating Against a Data Type for ASP.NET Server Controls