0

我制作了一个显示错误密码或用户名错误的对话框,但这并没有关闭。如何在不刷新页面的情况下关闭此对话框,代码就像

            <asp:Panel ID="errorMsg" runat="server" Visible="false">
                <asp:Label ID="msg" Text="" runat="server"></asp:Label>
                <asp:Label ID="errorHead" Text="Something is really Wrong :" runat="server"></asp:Label>
                                    <asp:button ID="try" OnClick="try_Click" runat="server" Text="Try Again" />

            </asp:Panel>

代码背后:

    protected void try_Click(object sender, EventArgs e)
    {
        errorMsg.Visible = false;
    }

errorMsg.visible 在输入错误时设置为 true,但在再次设置为 false 后它不会关闭。

4

1 回答 1

0

OnClick事件将触发 PostBack 刷新页面。

您可以尝试使用 javascript:

<script text="text/javascript">
   function hide(id){
     if(id)
       document.getElementById(id).style.display = "none";
   }
</script>

<asp:Button ID="try" OnClientClick='hide("<%=errorMsg.ClientId%>")'
     runat="server" Text="Try Again" />

或者您可以简单地使用Update Panel包装对话框。更新面板只允许您刷新网站的一部分。

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
  <ContentTemplate>
    <asp:Panel ID="errorMsg" runat="server" Visible="false">
      ...
      <asp:Button ID="try" OnClick="try_Click" 
           runat="server" Text="Try Again" />
    </asp:Panel>
  </ContentTemplate>
</asp:UpdatePanel>
于 2013-08-01T16:49:04.960 回答