Requiring Data Entry


ASP.NET Developer's JumpStart
By Paul D. Sheriff, Ken Getz
Table of Contents
Chapter 8.  Validation Controls

You'll often need to ensure that users enter a value into a control on a page. To make this easy, ASP.NET provides its RequiredFieldValidator control. On the sample page, EmpMaint.aspx, users must supply values for the First Name, Last Name, Birth Date, and Hire Date fields. Leaving any of these blank isn't allowed, and you need some way to indicate this to users. Figure 8.1 shows the sample form, after a user has attempted to submit the page by clicking Save without filling in any information. This page displays individual indicators of the fields that must be supplied.

Figure 8.1. The RequiredFieldValidator control makes it easier to avoid data fields left empty.



If you watch carefully as you test this page, you'll see that if you're using an up-level browser, you don't incur a roundtrip to the server when you click Save with no data filled in. Because Internet Explorer supports client-side scripting, ASP.NET emits the correct JavaScript code so that the page can validate the data before being submitted back to the server. This capability offloads some of the processing from the server and reduces network traffic by not requiring a roundtrip just to validate the data.

In order to use a RequiredFieldValidator control, you'll normally need to set the properties of the control listed in Table 8.1.

Table 8.1. Set These Properties for RequiredFieldValidator Controls
Property Description
ControlToValidate The name of the control you need to validate.
ErrorMessage The text to be displayed if the associated control's value isn't valid. If you also supply the Text property value, this property's text only appears in a validation summary. That is, the Text property overrides the ErrorMessage property for display within the control.
Text The text to be displayed within the control if the associated control's value isn't valid. If you don't supply this value, the control displays its ErrorMessage text.


You'll normally set the properties listed in Table 8.1 for all the validation controls. We won't list them again, but each validation control will need to have these properties specified.


To demonstrate the use of the RequiredFieldValidator control, you will modify the EmpMaint.aspx form, adding the necessary RequiredFieldValidator controls, as shown in Figure 8.1. You'll load this Web Form from the Employee hyperlink under the Maintenance section on the main form. Follow these steps to add the RequiredFieldValidator controls:

  1. Select Project, Add Existing Item. Be sure to change the Files of Type combo box to "All Files (*.*)".

  2. Add the EmpMaint.* files from the Jumpstart\ValidationControls folder. There should be three files: EmpMaint.aspx, EmpMaint.aspx.resx, and EmpMaint.aspx.vb.

  3. Now that you've added the form to your project, double-click the EmpMaint.aspx file to display the form.

  4. Place your cursor to the right of the First Name text box.

  5. In the Toolbox, double-click the RequiredFieldValidator control to add it adjacent to the text box.

  6. Repeat this for the Last Name, Birth Date, and Hire Date text boxes.

  7. Set the properties for the new controls as shown in Table 8.2.

Table 8.2. Set These RequiredFieldValidator Properties
Control Property Value
RequiredFieldValidator1 ControlToValidate txtFirst
  ErrorMessage First Name must be filled in
RequiredFieldValidator2 ControlToValidate txtLast
  ErrorMessage Last Name must be filled in
RequiredFieldValidator3 ControlToValidate txtBirthdate
  ErrorMessage Birth Date must be filled in
RequiredFieldValidator4 ControlToValidate txtHireDate
  ErrorMessage Hire Date must be filled in

To test your page, right-click the page in the Solution Explorer window and then select Build and Browse from the context menu. Without entering any data, click Save. You should see the appropriate error messages appear next to each text box. Try it again, this time entering some data into some of the text boxes, and verify that the controls validate correctly.

Although you didn't take advantage of it here, the RequiredFieldValidator control doesn't actually require you to supply a value that's not how it works. Actually, the RequiredFieldValidator control invalidates its associated control if the value in that control isn't different from the value in the InitialValue property of the RequiredFieldValidator control. For example, you may want to have the text "Enter a value" in a text box, and leaving this text intact isn't valid. Placing "Enter a value" into the InitialValue property of the RequiredFieldValidator control associated with the text box will ensure that users modify the value of the text box. In this case, the validator isn't verifying that the user entered a value but that the user entered a value that is different from the initial value. The default value of the RequiredFieldValidator's InitialValue field is an empty string, so by default, the validator forces users to enter a value that's different from its default an empty string.


Try posting the page back (click Save) with invalid data on the page. You won't be able to the page simply won't post back when it contains invalid data.


    ASP. NET Developer's JumpStart
    ASP.NET Developers JumpStart
    ISBN: 0672323575
    EAN: 2147483647
    Year: 2002
    Pages: 234 © 2008-2017.
    If you may any questions please contact us: