Microsoft KB Archive/316495

= BUG: Radio Buttons Are Not Mutually Exclusive When Used in a Repeater Server Control =

Article ID: 316495

Article Last Modified on 2/23/2007

-

APPLIES TO


 * Microsoft ASP.NET 1.0
 * Microsoft ASP.NET 1.1

-



This article was previously published under Q316495



SYMPTOMS
When you add a ASP.NET RadioButton control to the ItemTemplate of a data-bound Repeater server control, the RadioButton control that you created is not mutually exclusive when you run the ASP.NET page. This problem occurs even if the GroupName attribute is set for the RadioButton controls.



CAUSE
This problem occurs because the Repeater server control implements the INamingContainer interface, which requires that all controls that are nested within it must have a unique name when rendered in Hypertext Markup Language (HTML). Therefore, the HTML name attribute of any rendered child server control is unique.



STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.



MORE INFORMATION
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   code to Repeater1:  &quot;>     In the Page_Load event of Webform1.aspx, add the following code: TestArray[0]=&quot;Test Value 0&quot;; TestArray[1]=&quot;Test Value 1&quot;; TestArray[2]=&quot;Test Value 2&quot;;

Repeater1.DataSource = TestArray; Repeater1.DataBind; </li>  Add the following instance variable to the Page class: protected String[] TestArray = new String[3]; </li> Build the project, and then view the page in the browser.</li> Click each individual RadioButton control to verify that you can select them without changing the value of the other RadioButton controls.</li></ol>

Keywords: kbbug kbdatabinding kbnofix kbservercontrols kbwebforms KB316495

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.