Section 8.7. Validation Groups

8.7. Validation Groups

The examples shown in this chapter have been kept intentionally simple. In a real application, however, you might have a page with many controls on it. In addition, the page may be divided into sections, with more than one button that can submit the page, depending on what the user is doing.

At times, it is convenient to be able to say, "When I press the first button I want to validate only these first five controls, but when I press the second button I want to validate only the last four controls." This allows you to create forms in which you expect that some of the controls will be invalid. For example, you might have a page in which you ask the user to enter her username and password (if registered) or to enter other information if creating a new account. Clearly, one or the other will be left blank.

To accomplish this, you set the ValidationGroup property on all the controls (and the button that submits the page) to the same value for each group . In the example described above, the first five controls and the first button might all have ValidationGroup set to GroupOne , yet all the other controls would have ValidationGroup set to GroupTwo .

To try this out, create a new web site called ValidationGroup and copy the CompareValidator web site as a starting point.

Make two changes. First, move the two rows for password entry after the row that holds the Submit button. Then, add an additional row after the passwords to hold a new button with the ID of btnPW and the text Login . Your page should look like Figure 8-7.

Figure 8-7. Rearranging the form for ValidationGroups

That done, you can add the ValidationGroup to each of your validation controls and to the buttons . For all the controls above the Submit Bug button, add the group name Bug , and for all the controls below the Submit Bug button, add the group name Login as in this example:

 <asp:RequiredFieldValidator runat=server    id="reqFieldBooks"    ControlToValidate="ddlBooks"    Display="Static"    SetFocusOnError=true    InitialValue="-- Please Pick A Book --"    ErrorMessage = "You did not choose a book from the drop-down"  ValidationGroup="Bug"  Width="100%" > * </asp:RequiredFieldValidator> 

The drop-down lists have their AutoPostBack property set to TRue . This will cause a postback (and, thus, validation) when the drop-down value changes. Be sure to set the ValidationGroup to Bug for these controls as well.


When you click the Submit Bug button, only the controls in its group are validated , as shown in Figure 8-8.

Figure 8-8. Showing the validation group

Look carefully at Figure 8-8. The password fields are not filled in, though they have a required field validator. Because the Submit Bug button was pressed, and the validators for the password controls were not in the Bug group, they were not validated at all. If you click Login, the password controls will be validated, but none of the other controls will be validated.



Programming ASP. NET
Programming ASP.NET 3.5
ISBN: 0596529562
EAN: 2147483647
Year: 2003
Pages: 173

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net