代码之家  ›  专栏  ›  技术社区  ›  Junior

无法取消选中带有回发的复选框

  •  0
  • Junior  · 技术社区  · 11 年前

    我有几个用于隐藏和取消隐藏asp.net面板的复选框,我使用C#实现了这一点,这就是我需要回发的原因。

    现在,面板最初是隐藏的,当选中时我的代码工作正常,但当我尝试取消选中它们时,它们在回发后保留其值,面板仍然可见。

    这是我的代码:

    标记:

    <asp:CheckBox ID="cbxHideShow" runat="server" AutoPostBack="true" OnCheckedChanged="cbxHideShow_CheckedChanged" Text="Hide/Show Panel"/>
    

    和代码隐藏:

    protected void cbxHideShow_CheckedChanged(object sender, EventArgs e)
    {
        if (cbxHideShow.Checked = true)
        {
            Panel1.Visible = true;
        }
        else
        {
            Panel1.Visible = false;
        }
    }
    

    如果有人能告诉我我做错了什么,我会非常感激。

    1 回复  |  直到 11 年前
        1
  •  3
  •   gilly3    11 年前

    您正在使用赋值运算符( = )应该使用相等运算符的位置( == ).

    if (cbxHideShow.Checked == true)
    

    更好的是,完全省略运算符,因为 cbxHideShow.Checked 已经是布尔值:

    if (cbxHideShow.Checked)
    

    当然,你甚至不需要 if 声明。你可以这样做:

    protected void cbxHideShow_CheckedChanged(object sender, EventArgs e)
    {
        Panel1.Visible = cbxHideShow.Checked;
    }