One of the really cool features of ASP.NET are the built in validation controls. For the most part, they work well, even though they have some issues. One of the things that bugs me about them is that they don't scale particularly well. It becomes a pain to manage them when you have to go into each and every page to change their behaviour or look 'n' feel. Enter the following article, just posted on MSDN:
Dynamic Creation of Validation Controls
In my mind, this is the way the validators should have worked from the very beginning.