It's sometimes useful to be able to validate one control's data by comparing it to the data in another control or to a specified value. The CompareValidator control allows you to do both. An example familiar to all Web users would be the need to compare two entries of a user's password. In order to confirm that a user has entered the correct password, most sites require the user to enter the same value twice. Figure 8.4 shows a sample page comparing two text box controls' values.
Figure 8.4. The CompareValidator control allows you to compare the values in two controls.
Follow these steps to add the Password Change form to your project:
Select Project, Add Existing Item. Be sure to change the Files of Type combo box to "All Files (*.*)".
Select all PwdChange.* files from the Jumpstart\ValidationControls folder. There should be three files: PwdChange.aspx, PwdChange.aspx.resx, and PwdChange.aspx.vb.
Bring up the PwdChange.aspx file in design mode.
Click immediately to the right of the Confirm Password text box to place the insertion point after the control.
In the Toolbox window, double-click the CompareValidator control to place a new instance of the control to the right of the Confirm Password text box.
Set the properties of the new control as shown in Table 8.7.
Table 8.7. Set These Properties in the CompareValidator Control
|Property ||Value |
|ControlToCompare ||txtPassword |
|ControlToValidate ||txtConfirm |
|ErrorMessage ||'Password' and 'Confirm Password' must match |
Run the application, bring up the Password Change page, and attempt to change the password. Check out what happens when you enter two different passwords on the page you should see the error message displayed in the CompareValidator control.
OTHER USES FOR THE COMPAREVALIDATOR CONTROL
The CompareValidator control does more than just compare the values of two controls. You can also compare a control to a specific value. In addition, the Operator property of the control allows you to check for other comparisons besides equality. The Operator property can be any of these values: Equal (the default value), NotEqual, GreaterThan, GreaterThanEqual, LessThan, LessThanEqual, or DataTypeCheck. This last option, DataTypeCheck, allows you to simply check that the value entered into the control matches a specific data type. If you select DataTypeCheck for the Operator property and set the Type property to Date, for example, and leave ControlToCompare and ValueToCompare empty, you can allow the user to enter any date, but only a date.