Cures for Common Aliments - Using a RequiredFieldValidator with a RadioButtonList, DropDownList, ListBox and any other ListItem Control
I have decided that it would be useful to post a series of solutions to some fairly common problems encountered by many ASP.NET programmers. Some of these cures will be second nature to many, but they will all be a useful reference at some point in your ASP.NET life-cycle.
My first cure is what I would consider a moderate level tip. We often need to require a user select an item in a RadioButtonList, or any other web control derived from ListControl. Often an uninitiated programmer will add a RequiredFieldValidation control to their form and set the ControlToValidate property to the RadioButtonList in question.
This does not completely solve the problem because the RequiredFieldValidator will do a comparison of the value being submitted against the value the control had when the form was rendered. The RequiredFieldValidator has a property, InitialValue, that allows you to define what the initial value is that will be compared to the final value at postback. If the two values are the same the ErrorMessage will be displayed and the form will not be posted back to the server.
<asp:RadioButtonList ID="RadioButtonList1" runat="server"><asp:ListItem>1</asp:ListItem>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="RadioButtonList1"ErrorMessage="You must make a choice to continue" InitialValue=""></asp:RequiredFieldValidator>