UPDATE:  I touched on this earlier, but if you want to see a real working sample, go to:
 
 
The Search By Id textbox is in a different validation group than the rest of the search criteria.  Therefore, you can submit a search without filling out the ErrorIdTextBox.  The items are in SourceSafe in the 2.0 branch if you are interested.
 
I think most people have heard of ValidationGroups by now, but I wanted to touch on it, just to make sure.   Many times in the past, there were situations where you had multiple forms on the page that needed to be validated seperately from one another.  A good example is our index page with the Location / Time control and a Location Search textbox.  Today, without special handling, typing something in the location search textbox will cause all of the Location / Time control validators to fire.  This is obviously not the intended behavior.
 
Now a new property has been added to button controls as well as validators called ValidationGroup.  Simply set this property to the same name for all controls that you want to be validated together.  Set a different name for the other controls on your page that you want to be evaluated seperately.  So in the above example, all of the Location / Time control's controls and validators would set ValidationGroup equal to LocationTime.  The Location Search controls could be set to LocationSearch.
 
Here is a quick example of how two different sets of textboxes and butons can be validated seperately:
 
    <asp:TextBox
        id="TextBox1"
        Runat="Server" />
    <asp:Button
        ValidationGroup="Group1"
        Text="Submit"
        OnClick="Group1Click"
        Runat="Server" />
    <asp:RequiredFieldValidator
        ValidationGroup="Group1"
        ControlToValidate="TextBox1"
        Text="(required)"
        Runat="Server" />
   <asp:TextBox
        id="TextBox2"
        Runat="Server" />
    <asp:Button
        ValidationGroup="Group2"
        Text="Submit"
        OnClick="Group2Click"
        Runat="Server" />
    <asp:RequiredFieldValidator
        ValidationGroup="Group2"
        ControlToValidate="TextBox2"
        Text="(required)"
        Runat="Server" />

Like I said, many of you have probably already heard of this feature, but I thought it was worth covering again.

Read the complete post at http://www.dotnettipoftheday.com/blog.aspx?id=205