C# 为什么我必须显式启用和禁用单选按钮?
当我想使用AJAX更改单选按钮的状态时,我发现有必要显式地设置每个单选按钮的状态,而不仅仅是在要启用的单选按钮上设置C# 为什么我必须显式启用和禁用单选按钮?,c#,asp.net,ajax,asp.net-ajax,C#,Asp.net,Ajax,Asp.net Ajax,当我想使用AJAX更改单选按钮的状态时,我发现有必要显式地设置每个单选按钮的状态,而不仅仅是在要启用的单选按钮上设置Checked=true。如果我删除下面的标记行,我也许可以使用按钮更改radiobuttons状态一次或两次,但不能再更改了 有人能解释为什么会这样吗?除了我要检查的单选按钮外,还必须显式取消选中其他单选按钮,这感觉有些多余 ASP代码 如果需要执行此类操作,可以使用RadioButtonList控件。如果需要执行此类操作,可以使用RadioButtonList控件。如果执行此操
Checked=true
。如果我删除下面的标记行,我也许可以使用按钮更改radiobuttons状态一次或两次,但不能再更改了
有人能解释为什么会这样吗?除了我要检查的单选按钮外,还必须显式取消选中其他单选按钮,这感觉有些多余
ASP代码
如果需要执行此类操作,可以使用RadioButtonList控件。如果需要执行此类操作,可以使用RadioButtonList控件。如果执行此操作,可以使用RadioButtonList 查看以下链接:
如果要执行此操作,可以使用RadioButtonList 查看以下链接:
如果我不得不猜测,可能是因为ASP页面有上下文可以理解这些单选按钮是一个组,而代码方面则不是。如果我不得不猜测,可能是因为ASP页面有上下文可以理解这些单选按钮是一个组,而代码方面则不是。谢谢,你的回答仍然没有解释我问题的“为什么”部分,但它是正确处理问题的一个很好的指针。谢谢,你的回答仍然没有解释我问题的“为什么”部分,但它是正确处理问题的一个很好的指针。
<div>
<asp:UpdatePanel ID="UP_Checkboxes" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:RadioButton ID="RadioButton1" runat="server" GroupName="MyRBs" /><br />
<asp:RadioButton ID="RadioButton2" runat="server" GroupName="MyRBs" /><br />
<asp:RadioButton ID="RadioButton3" runat="server" GroupName="MyRBs" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div>
<asp:UpdatePanel ID="UP_Buttons" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" Text="Select 1" OnClick="Button1_Click" /><br />
<asp:Button ID="Button2" runat="server" Text="Select 2" OnClick="Button2_Click" /><br />
<asp:Button ID="Button3" runat="server" Text="Select 3" OnClick="Button3_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
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();
}