我有几个用于隐藏和取消隐藏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;
}
}
如果有人能让我知道我做错了什么,我会非常感激。
答案 0 :(得分:3)
您正在使用赋值运算符(=
),您应该使用相等运算符(==
)。
if (cbxHideShow.Checked == true)
更好的是,完全省略运算符,因为cbxHideShow.Checked
已经是布尔值:
if (cbxHideShow.Checked)
当然,你根本不需要if
声明。你可以这样做:
protected void cbxHideShow_CheckedChanged(object sender, EventArgs e)
{
Panel1.Visible = cbxHideShow.Checked;
}