如果Else Statement不能正常工作ASP.NET

时间:2016-08-04 06:35:35

标签: c# asp.net if-statement radio-button

Index.aspx

 <asp:RadioButton ID="rbt1" runat="server" Text="By Customer" GroupName="summary" OnCheckedChanged="enabled_CheckedChanged" Checked="True"/>
 <asp:RadioButton ID="rbt4" runat="server" Text="With Target" OnCheckedChanged="enabled_CheckedChanged" GroupName="summary"/>

Index.aspx.cs

public void enabled_CheckedChanged(object sender, EventArgs e)
{
      if (rbt4.Checked == true)
      {
           rbt1.Checked = true;
      }
      else
      {
           rbt1.Checked = false;
      }
}

代码的目的是在选中rbt1时,将检查rbt4。用户也可以在检查rbt1后检查rbt4。但是,如果选中rbt4,将自动检查rbt1。上面的代码被使用但它似乎没有工作。我错过了什么或者我的编码有错误吗?请指教。提前谢谢。

4 个答案:

答案 0 :(得分:1)

您正在使用单选按钮并且想要选择多个,但单选按钮与相同的GroupName互斥。您不能选择多个具有相同组的RadioButton。您可能需要使用CheckBox来选择多个,或者为特殊情况提供不同的GroupName可以解决问题,或者您可能需要组合使用单选按钮或嵌套的html复选框。

  

使用GroupName属性指定一组单选按钮   创建一组互斥的控件。您可以使用GroupName   当可用列表中只有一个选项时,属性   选项。设置此属性时,只有一个RadioButton   可以一次选择指定的组MSDN

如果你想在复选框中建立一些关系,比如选择一个,那么应该选择其他一些关系,然后你可以使用客户端脚本来节省不必要的PostBack并平滑用户体验。

答案 1 :(得分:1)

两个单选按钮具有相同的GroupName。一次只能检查其中一个。更改单选按钮的GroupName属性以修复错误。为清楚起见,请参阅此link。还要将'AutoPostBack =“true”属性添加到单选按钮代码。

答案 2 :(得分:0)

参考此编码注意:AutoPostBack =&#34; true&#34;。删除两个单选按钮的相同组名称。

<asp:RadioButton ID="RadioButton1" runat="server" OnCheckedChanged="RadioButton1_CheckedChanged" AutoPostBack="true" />

protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
        {
            RadioButton2.Checked = true;
        }

答案 3 :(得分:0)

请在您的HTML代码中添加AutoPostBack="true"

<asp:RadioButton ID="rbt1" runat="server" AutoPostBack="true" Text="By Customer"GroupName="summary" OnCheckedChanged="enabled_CheckedChanged" Checked="True" />

<asp:RadioButton ID="rbt4" runat="server" AutoPostBack="true" Text="With Target" OnCheckedChanged="enabled_CheckedChanged" GroupName="summary" />