【问题标题】:.net Select only one of two checkboxes?.net 仅选择两个复选框之一?
【发布时间】:2015-04-07 11:56:20
【问题描述】:

我有两个复选框,一个是真,一个是假。应该只允许用户选择一个,当一个被选中时另一个被取消选择,反之亦然。我有一个 on change 事件可以执行此操作,但是如果我选择一个,则另一个取消选择,然后按浏览器后退按钮,它们都显示为已选中?!我输入了一种方法来检查此事件,但是当它们都出现在前端选择时,后端的逻辑将其视为未选中?这有意义吗?

我的复选框:

<asp:PlaceHolder runat="server" ID="phIsValidated">
            <asp:CheckBox ID="chbTrue"
                Text="True"
                runat="server"
                AutoPostBack="True"
                OnCheckedChanged="Check_Clicked" />
            <asp:CheckBox ID="chbFalse"
                Text="False"
                runat="server"
                AutoPostBack="True"
                OnCheckedChanged="Check_Clicked" />
        </asp:PlaceHolder>

我的更改事件:

   protected void Check_Clicked(Object sender, EventArgs e)
    {
        CheckBox checkBox = (CheckBox)sender;
        if (checkBox.ID=="chbTrue")
        {
            chbFalse.Checked = !chbTrue.Checked;
        }
        else
        {
            chbTrue.Checked = !chbFalse.Checked;
        }
    }

【问题讨论】:

  • 如果用户只能选择一种,为什么不使用选项/单选按钮?
  • 使用 RadioButton,这是你需要的。

标签: c# asp.net .net webforms


【解决方案1】:
<asp:RadioButtonList ID="MyRadioButtons" runat="server">
      <asp:ListItem Value="Y">Yes</asp:ListItem>
      <asp:ListItem Value="N">No</asp:ListItem>
</asp:RadioButtonList>

以下是处理所选项目的代码示例: http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_radiobuttonlist

【讨论】:

  • 非常感谢,这很有帮助
【解决方案2】:

第 1 步:添加两个复选框。

第 2 步:将 OnCheckedChanged 事件添加到所有复选框。

(如果您不知道如何添加 OnCheckKedChanged 事件,您可以按照以下步骤操作。

有两种添加方法。

第一个你可以直接将它添加到你的代码中

<asp:CheckBox  runat="server" ID="Try1ID" OnCheckedChanged="Try1ID_CheckedChanged"/>

或者

2nd 您可以在visual studio中打开设计选项卡并双击要创建OnCheckKedChanged事件的复选框。

)

第 3 步:设置 AutoPostBack = True。

( 示例:

<asp:CheckBox  runat="server" ID="Try1ID" AutoPostBack="True" OnCheckedChanged="Try1ID_CheckedChanged"/>

您可以在复选框属性窗口中进行设置。

)

第 4 步:在 OnCheckKedChanged 事件内的 .cs 文件中添加 If Else 条件

(

示例:如果您有两个名为 Try1ID_CheckedChanged 和 Try2ID_CheckedChanged 的​​复选框 你的情况应该是这样的,

protected void Try1ID_CheckedChanged(object sender, EventArgs e)
                {
                    if (Try1ID.Checked)
                        {
                                Try2ID.Checked = false;
                        }
                }
    
    protected void Try2ID_CheckedChanged(object sender, EventArgs e)
                {
                    if (Try2ID.Checked)
                        {
                                Try1ID.Checked = false;
                        }
                }

)

第 5 步:按 F5 并测试程序。

【讨论】:

    猜你喜欢
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 2012-07-18
    • 2012-05-08
    相关资源
    最近更新 更多