无法取消选中带有回发的复选框
Unable to uncheck checkbox with 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;
}
}
如果有人能告诉我我做错了什么,我将不胜感激。
您在应该使用相等运算符 (==
) 的地方使用了赋值运算符 (=
)。
if (cbxHideShow.Checked == true)
更好的是,完全省略运算符,因为 cbxHideShow.Checked
已经是一个布尔值:
if (cbxHideShow.Checked)
当然,您甚至根本不需要 if
语句。你可以这样做:
protected void cbxHideShow_CheckedChanged(object sender, EventArgs e)
{
Panel1.Visible = cbxHideShow.Checked;
}
我有几个用于隐藏和取消隐藏 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;
}
}
如果有人能告诉我我做错了什么,我将不胜感激。
您在应该使用相等运算符 (==
) 的地方使用了赋值运算符 (=
)。
if (cbxHideShow.Checked == true)
更好的是,完全省略运算符,因为 cbxHideShow.Checked
已经是一个布尔值:
if (cbxHideShow.Checked)
当然,您甚至根本不需要 if
语句。你可以这样做:
protected void cbxHideShow_CheckedChanged(object sender, EventArgs e)
{
Panel1.Visible = cbxHideShow.Checked;
}