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

时间:2015-03-18 00:36:30

标签: c# asp.net checkbox postback

我有几个用于隐藏和取消隐藏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 个答案:

答案 0 :(得分:3)

您正在使用赋值运算符(=),您应该使用相等运算符(==)。

if (cbxHideShow.Checked == true)

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

if (cbxHideShow.Checked)

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

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