HTML versions 3.2 and later require that all radio button controls that are mutually exclusive have the same unique name attribute. Because controls that are inside a bound
Repeater sever control must have a unique name, the rendered HTML
RadioButton control is not mutually exclusive.
Note that the
GroupName attribute should resolve this problem. If you set the
GroupName attribute, every
RadioButton control should render the same HTML name attribute that was specified by the
GroupName attribute of the server control. The expected behavior does not occur because the unique client naming overrides the use of the
GroupName property.
Steps to Reproduce the Problem
- Create a new Microsoft Visual C# .NET Web application project.
- In the Design view, drag a Repeater server control to the default Webform1.aspx page.
- In HTML view, add the following <itemtemplate> code to Repeater1:
<ItemTemplate>
<asp:RadioButton id="RadioButton1" runat="server" GroupName="RadioButton1" Text="<%#Container.DataItem.ToString()%>">
</asp:RadioButton><br>
</ItemTemplate>
- In the Page_Load event of Webform1.aspx, add the following code:
TestArray[0]="Test Value 0";
TestArray[1]="Test Value 1";
TestArray[2]="Test Value 2";
Repeater1.DataSource = TestArray;
Repeater1.DataBind();
- Add the following instance variable to the Page class:
protected String[] TestArray = new String[3];
- Build the project, and then view the page in the browser.
- Click each individual RadioButton control to verify that you can select them without changing the value of the other RadioButton controls.