我正在开发一个Web应用程序,它不需要实际记录到数据库,而是在访问菜单之前验证数据。我使用<div>
来显示验证失败的错误消息。验证发生在后面的代码中。我希望事件能够将div的可见性属性更改为隐藏或可见,但它会在页面重新加载时失败,因此看起来没有进行任何更改。
简而言之:
<div runat="server" id="Errmsg" style="visibility:false">
</div>
<div id="otherDiv">
<asp:TextBox runat="server" ID="IdDepTxt"></asp:TextBox>(just as an example)
<asp:Button ID="AccessBtn" runat="server" OnClick="AcessBtn_Click" Text="ACCESS" CausesValidation="False" UseSubmitBehavior="False"></asp:Button>
</div>
代码背后:
private boolean validate_data(string Parm1)
{
//some code that connects to a db and looks for Parm1 in a table
}
protected void AccessBtn_Click(object sender, EventArgs e)
{
if (validate_data(IdDepTxt.text))
{
Response.Redirect("~/Menu.aspx");
}
else
{
Errmsg.Visible = true;
}
}
答案 0 :(得分:1)
首先,false
不是visibility属性的有效值。您可能正在寻找hidden
。
style="visibility: hidden;"
有效值如下:
visibility:visible | hidden | collapse | initial | inherit;
其次,您正在混合使用ASP.NET和CSS可见性功能。您应该选择其中一个而不是两个。否则他们会相互冲突,你可能看不到你期望看到的东西。
CSS:
<div runat="server" id="Errmsg" style="visibility: hidden;">
Errmsg.Style.Add("visibility", "hidden");
ASP.NET:
<div runat="server" id="Errmsg" Visible="False">
Errmsg.Visible = false;
或者,您也可以使用Panels代替div。它们就像div那样充当容器,但是当涉及到ASP.NET功能时,它们在你的代码中更容易使用。
<asp:Panel ID="Errmsg" runat="server" Visible="False"></asp:Panel>