title: Why do I have to enable and disable radiobuttons explicitly?
body: <p>When I want to change the state of radiobuttons using AJAX, I discovered that it is necessary to set the state of each radiobutton explicitly, rather than just setting <code>Checked = true</code> on the one that you want to have enabled. If I remove the marked lines below, I can perhaps change the radiobuttons state once or twice using the buttons, but no more. </p>
  
  <p>Can anyone explain why this is? It feels redundant to have to explicitly uncheck the other radiobuttons than the one I want to check.</p>
  
  <h3>ASP Code</h3>
  
  <pre><code>&lt;div&gt;
      &lt;asp:UpdatePanel ID="UP_Checkboxes" UpdateMode="Conditional" runat="server"&gt;
          &lt;ContentTemplate&gt;
              &lt;asp:RadioButton ID="RadioButton1" runat="server" GroupName="MyRBs" /&gt;&lt;br /&gt;
              &lt;asp:RadioButton ID="RadioButton2" runat="server" GroupName="MyRBs" /&gt;&lt;br /&gt;
              &lt;asp:RadioButton ID="RadioButton3" runat="server" GroupName="MyRBs" /&gt;
          &lt;/ContentTemplate&gt;
      &lt;/asp:UpdatePanel&gt;
  &lt;/div&gt;
  &lt;div&gt;
      &lt;asp:UpdatePanel ID="UP_Buttons" runat="server" UpdateMode="Conditional"&gt;
          &lt;ContentTemplate&gt;
              &lt;asp:Button ID="Button1" runat="server" Text="Select 1" OnClick="Button1_Click" /&gt;&lt;br /&gt;
              &lt;asp:Button ID="Button2" runat="server" Text="Select 2" OnClick="Button2_Click" /&gt;&lt;br /&gt;
              &lt;asp:Button ID="Button3" runat="server" Text="Select 3" OnClick="Button3_Click" /&gt;
          &lt;/ContentTemplate&gt;
      &lt;/asp:UpdatePanel&gt;
  &lt;/div&gt;
  </code></pre>
  
  <h3>CS Code</h3>
  
  <pre><code>protected void Button1_Click(object sender, EventArgs e)
  {
      RadioButton1.Checked = true;
      RadioButton2.Checked = false; // Removing these lines causes problems
      RadioButton3.Checked = false; // Removing these lines causes problems
      UP_Checkboxes.Update();
  }
  
  protected void Button2_Click(object sender, EventArgs e)
  {
      RadioButton1.Checked = false; // Removing these lines causes problems
      RadioButton2.Checked = true;
      RadioButton3.Checked = false; // Removing these lines causes problems
      UP_Checkboxes.Update();
  }
  
  protected void Button3_Click(object sender, EventArgs e)
  {
      RadioButton1.Checked = false; // Removing these lines causes problems
      RadioButton2.Checked = false; // Removing these lines causes problems
      RadioButton3.Checked = true;
      UP_Checkboxes.Update();
  }
  </code></pre>