我有一个保存&关闭按钮,我需要在保存数据后关闭我的页面。我尝试了很多方法,但都没有用。
代码背后:
protected void btnSaveClose_Click(object sender, EventArgs e)
{
Save();
ClientScript.RegisterClientScriptBlock(Page.GetType(), "script", "window.close();", true);
}
我需要帮助关闭窗口。
答案 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>");
}