MIS 3200 – Unit 2.2 • Outline – What’s the problem with bad data? – Traditional solutions – ASP.NET tools – Validators • • • • RequiredFieldValidator RangeValidator CompareValidator ValidationSummary What’s the problem • BAD DATA! – Bad input data • • • • Incorrect format Illegal values Illogical values Illegal characters 03/30/12 -5/03/2012 30/03/2012 ##/03/2012 – Illegal operations (e.g. division by zero) 03/30/2013 Traditional Solutions • • • • Data entry professionals Double entry procedures Self-checking numbers Program code Solution: Validators • Controls that do error checking, such as – Require an entry: • Provide a credit card number – Within a specified range • Year of birth should be between 1900 and 2000 – Compare an entry to a predetermined value • Retype your password, and they should match – Compare an entry the value of another control • Require an email address to contain “@” and “.” How Validators Work • ControlToValidate property – tells the validator which TextBox to validate • Placed next to the control they to validate • User feedback Remember these user – Text – ErrorMessage feedback properties • “Fire” (be triggered) when a button is clicked or when focus passes to another control. RequiredFieldValidator - RFV • Typically associated with a TextBox • Fires if nothing is entered in the TextBox • When the validator fires it displays a message – If only one of the validator’s ErrorMessage and Text properties has a value then that value is displayed – If both ErrorMessage and Text have values then the value of Text is displayed at the location of the validator and the value of ErrorMessage is displayed in a ValidationSummary control if there is one on the page RFV Example txtNum1 Running version before pressing Try It Running version after pressing Try It Error message color set to red No value set for Text RFV Example 2 • Validation problems often need more text than what can be accommodated next to the web control. • Use ValidationSummary control and the ErrorMessage property Design view After Running and pressing Try It linked to all validators on the page CompareValidator - CV • Compare an entry to a predetermined value – ControlToCompare if you want to compare to another Control • or the value of another control – ValueToCompare to compare to a predetermined value • To prevent missing data while comparing, – MUST be used with a RequiredFieldValidator – CV only fires if there is something to validate CV Example • Allows you to chose the data type – Default type is string • Allows you to chose the type of comparison – Default is a test for equality • Allows you to set focus on the problematic data when the validator fires – Recall: the Focus() method CV Example To compare to another control RequiredFieldValidator CompareValidator Entry is not > 10 Entry is a whole number > 10 Entry is not a whole number RangeValidator - RV • Similar to the CompareValidator but has a – MinimumValue and a MaximumValue (instead of a ValueToCompare or FieldToCompare) • Has the same Type choices as the CV • Has the same SetFocusOnError option RV Example • • An entry is required Please enter a number in the range RFV and RV Note: this works fine for data types double and decimal Try it Out – L2.2 1. 2. 3. 4. 5. 6. 7. 8. Make sure ASPPub is on your desktop Start VWD and open ASPPub Open the Unit2 folder under MIS3200 Click on yourLastNameU2L2.aspx file Right-click and copy Click on the Unit2 folder Right-click and paste Change the file name to yourLastNameU2L22.aspx L2.2 #2 9. Open the file in Design view 10. Drop a RequiredFieldValidator to the right of your first TextBox a. b. c. d. e. f. g. Change the (ID) to rfvNum1 Change the ControlToValidate to txtNumber1 Change the ErrorMessage to Number 1 is required Change the Text to * Change ForeColor to red Change SetFocusOnError to true Change the Display to Dynamic L2.2 #3 11 Drop a CompareValidator to the right of your RequiredFieldValidator a. b. c. d. e. f. g. h. i. Set the (ID) to cvNumber1 Set ControlToValidate to txtNumber1 Change ErrorMessage to Number 1 must be a valid number Change Text to * Change SetFocusOnError to true Change the ForeColor to red Change Operator to DataTypeCheck Change Type to Double Change the Display to Dynamic L2.2 #4 12 Repeat steps 10 and 11 for the second TextBox, changing names and messages as required 13 Drop another CompareValidator after the second TextBox 14 Repeat all of step 11 again for the 2nd CV with the following differences: a. b. c. d. e. f. Set the (ID) to cvNumber2Zero Set the error message to Number 2 can’t be zero Set Operator to NotEqual Set ValueToCompare to 0 (a zero) Set the ControlToValidate to txtNumber2 Do NOT set the Type (if you do delete the validator and repeat) L2.2 #5 15 Drop a ValidationSummary after lblOutput a. Change its ForeColor to red 16 Run the page trying various combinations of values a. b. c. d. Press + with nothing in the text boxes Put a number in one text box but not the other Put non-numeric data in one text box or the other Put zero in the second text box 17 Change the page heading to Unit 2.2 L2.2 – Simple Calculator with Validation L2.2 – Sample Output L2.2 – Final steps 18 Open your MIS3200 home page in the MIS3200 folder 19 Add another hyperlink for unit 2 a. (ID) = hlU22L22 b. Text = Unit 2.2 L2.2 c. NavigateUrl = the page you just modified 20 Copy ASPPub back to ASPNET and submit your MIS Portfolio URL to the drop box Think About It! • Why are validators important? • When do you use the following: – – – – RequiredFieldValidator RangeValidator CompareValidator ValidationSummary