Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#scriptmanager脚本将与其他脚本一起调用 断然的! 在asp:按钮上使用OnClientClick=“window.parent.close()”而不是关闭窗口脚本,我将其过度复杂化。_C#_Asp.net - Fatal编程技术网

c#scriptmanager脚本将与其他脚本一起调用 断然的! 在asp:按钮上使用OnClientClick=“window.parent.close()”而不是关闭窗口脚本,我将其过度复杂化。

c#scriptmanager脚本将与其他脚本一起调用 断然的! 在asp:按钮上使用OnClientClick=“window.parent.close()”而不是关闭窗口脚本,我将其过度复杂化。,c#,asp.net,C#,Asp.net,我在aspx页面上有下面两个脚本。但是,当asp:按钮调用“closeWindow”时,它会显示“Email Sent”消息,但之后会关闭窗口 <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

我在aspx页面上有下面两个脚本。但是,当asp:按钮调用“closeWindow”时,它会显示“Email Sent”消息,但之后会关闭窗口

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
    <asp:Button runat="server" Text="Close Window" id="closewindowbutton" onclick="closewindowbutton_Click" class="btn"  />
</asp:Content>

protected void closewindowbutton_Click(object sender, System.EventArgs e)
        {
            Page page = HttpContext.Current.CurrentHandler as Page;
            if (page != null && !page.ClientScript.IsClientScriptBlockRegistered("closeWindow"))
            {
                ScriptManager.RegisterStartupScript(page, typeof(Page), "closeWindow", "window.close();", true);
                // ClientScript.RegisterStartupScript(typeof(Page), "closeWindow", "window.close();", true);
            }
        }

        public static void ShowAlert(string message)
        {
            string cleanMessage = message.Replace("'", "\'");
            Page page = HttpContext.Current.CurrentHandler as Page;
            string script = string.Format("alert('{0}');", cleanMessage);
            if (page != null && !page.ClientScript.IsClientScriptBlockRegistered("alert"))
            {
                ScriptManager.RegisterStartupScript(page, typeof(Page), "alert", script, true);
            }
            return;
        }


<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

我无法复制,您能再显示一些代码吗?您使用的是单个页面还是全部。aspx页面是母版的一部分?在上面添加了一些代码,它们是母版的一部分如果您不介意我问,为什么在页面加载时调用ShowAlert?你看,当你点击按钮时,它会创建一个回发,在每个回发页面上,加载方法会触发ShowAlert(“已发送电子邮件!”);被召唤!现在,如果您添加另一个按钮并单击它,我打赌您会显示警报(“已发送电子邮件!”);我会再打电话给你。您应该删除ShowAlert(“已发送电子邮件!”);从Page_Load,但请告诉我为什么它在那里,以便我们可以找到替代方案?它在加载页面时发送电子邮件(我已删除发送邮件代码),然后需要自动显示“email sent”消息,但我不明白为什么两个脚本一起调用,每个脚本是否需要单独的脚本管理器?我刚刚更新了下面的答案。。。看看这是否有用!
protected void Page_Load(object sender, System.EventArgs e)
{
  ShowAlert("Email Sent!");
}