按钮切换div可见属性

时间:2016-05-24 17:36:26

标签: c# asp.net

我正在开发一个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;
    }
}

1 个答案:

答案 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>