关闭按钮上的页面单击asp.net c#

时间:2013-11-01 21:26:04

标签: c# asp.net

我有一个保存&关闭按钮,我需要在保存数据后关闭我的页面。我尝试了很多方法,但都没有用。

代码背后:

protected void btnSaveClose_Click(object sender, EventArgs e)
    {
        Save();
        ClientScript.RegisterClientScriptBlock(Page.GetType(), "script", "window.close();", true);
    }

我需要帮助关闭窗口。

5 个答案:

答案 0 :(得分:2)

close方法的MDN documentation解释了一些限制:

  

只允许为使用window.open方法的脚本打开的窗口调用此方法。如果脚本未打开窗口,则JavaScript控制台中会显示以下错误:Scripts may not close windows that were not opened by script.

换句话说,除非使用window.open方法打开窗口,否则此方法将无效。

答案 1 :(得分:0)

您不在Web应用程序中“关闭窗口”。只需向用户显示友好消息作为确认或友好错误消息,无论哪种情况。您可以使用三个面板轻松完成此操作:

<asp:Panel id="formPanel" runat="server">
    <!-- Your form controls go here -->
</asp:Panel>

<asp:Panel id="confirmPanel" runat="server">
    <!-- Confirmation message -->
</asp:Panel>

<asp:Panel id="errorPanel" runat="server">
    <!-- Error message -->
</asp:Panel>

只需在代码隐藏中的适当位置切换这些面板的visible属性即可。

答案 2 :(得分:0)

谢谢大家。这是修复它的解决方案。

protected void Page_PreRender(object sender, EventArgs e)
    {
        if (ViewState["closewindow"] != null)
            closewindow = (bool)ViewState["closewindow"];
        if (closewindow)
        {
            closewindow = false;
            ScriptManager.RegisterStartupScript(this, this.GetType(), "Close_Window", "self.close();", true);
            ///System.Web.UI.ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Close_Window", "self.close();", true);
        }
    }

答案 3 :(得分:0)

string display = "Your dispaly";

ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + display + "');", true);//this will dispaly the alert box


ScriptManager.RegisterStartupScript(this, this.GetType(), "Close_Window", "self.close();", true);//this will close the page on button click

这对我有用 感谢所有

答案 4 :(得分:0)

这对我有用,所以我会推荐它:

protected void Page_Load(object sender, EventArgs e)
{
    this.CloseBtn.Attributes.Add("OnClick", "self.close()");
}

protected void CloseBtn_Click(object sender, EventArgs e)
{
    Response.Write("<script language='javascript'> { self.close() }</script>");
}