C# 无法在回发时取消选中复选框

C# 无法在回发时取消选中复选框,c#,asp.net,checkbox,postback,C#,Asp.net,Checkbox,Postback,我有几个复选框用于隐藏和取消隐藏asp.net面板,我使用C#完成了这项工作,这就是我需要回发的原因 现在,最初面板是隐藏的,我的代码在选中时可以正常工作,但当我尝试取消选中它们时,它们在回发后保留其值,并且面板仍然可见 这是我的密码: 标记: <asp:CheckBox ID="cbxHideShow" runat="server" AutoPostBack="true" OnCheckedChanged="cbxHideShow_CheckedChanged" Text="Hide/S

我有几个复选框用于隐藏和取消隐藏asp.net面板,我使用C#完成了这项工作,这就是我需要回发的原因

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

这是我的密码:

标记:

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

如果有人能让我知道我做错了什么,我将非常感激。

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

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

if (cbxHideShow.Checked)
当然,您甚至根本不需要
if
语句。你可以这样做:

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

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

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

if (cbxHideShow.Checked)
当然,您甚至根本不需要
if
语句。你可以这样做:

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

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

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

if (cbxHideShow.Checked)
当然,您甚至根本不需要
if
语句。你可以这样做:

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

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

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

if (cbxHideShow.Checked)
当然,您甚至根本不需要
if
语句。你可以这样做:

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

实际上,使用客户端JavaScript更容易实现这一点。请参阅使用客户端JavaScript更容易实现这一点。请参阅使用客户端JavaScript更容易实现这一点。请参阅使用客户端JavaScript更容易实现这一点。看见