c# - asp.net 如何在 asp 中使用页内链接关闭对话框

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

最佳答案

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>

关于c# - asp.net 如何在 asp 中使用页内链接关闭对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17915692/

相关文章:

c# - 如何将 SetBasePath 设置为 Program.Main 上的 dll 位置

c# - 申请许可证

c# - 从IP地址获取网站的服务器

c# - ASP.NET Core在提交表单时排除viewmodel的属性

css - 将颜色属性添加到 form_error

css - Bootstrap 3 中的全 Angular 背景图片

c# - SignalR 卡住所有后续的 http 请求

javascript - 从后面的代码将 javascript 放在页面上

html - 使用 anchor 标记创建的按钮的悬停效果不正确

c# - SQLite错误:不存在这样的表main.table_name