asp.net如何在asp中使用intrapage链接关闭一个dialoge框

时间:2013-07-29 03:39:43

标签: c# asp.net css

我创建了一个显示错误密码或用户名错误的对话框,但这并未关闭。 如何关闭此对话框而不刷新页面,代码就像

            <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后,它不会关闭。

1 个答案:

答案 0 :(得分: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>