当前位置:  开发笔记 > 编程语言 > 正文

以编程方式从后面的代码关闭aspx页面

如何解决《以编程方式从后面的代码关闭aspx页面》经验,为你挑选了5个好方法。

从代码隐藏中关闭ASPX页面的最佳方法是什么?

我有一个按钮事件处理程序,我想在用户单击页面上的ASP.NET按钮后关闭页面.我试图以编程方式添加一个JavaScript方法,其中包含一个window.close()命令到OnClientClick事件关闭页面,但它不起作用.该按钮也asp:AsyncPostBoskTrigger适用于AJAX更新面板.

该应用程序使用.NET Framework 3.5.



1> CodingWithSp..:

你通常会这样做:

protected void btnClose_Click(object sender, EventArgs e)
{
    ClientScript.RegisterStartupScript(typeof(Page), "closePage", "window.close();", true);
}

但是,请记住,不同的场景会发生不同的事情.Firefox不会让你关闭一个你没有打开的窗口(打开window.open()).

IE7将提示用户"此页面正在尝试关闭(是|否)"对话框.

无论如何,你应该准备好处理窗口而不是总是关闭!

上述2个问题的一个解决方法是使用:

protected void btnClose_Click(object sender, EventArgs e) {
    ClientScript.RegisterStartupScript(typeof(Page), "closePage", "window.open('close.html', '_self', null);", true);
}

并创建一个close.html:


 
 
 
 
     

Please Wait...

请注意,如果由于某种原因窗口在2秒后没有关闭,close.html将重定向到default.aspx.



2> SP007..:
 protected void btnOK_Click(object sender, EventArgs e)
        {

          // Your code goes here.
          if(isSuccess)
          {
                  string  close =    @"";
            base.Response.Write(close);
            }

        }



3> Michael Knis..:

更新:我已经完成了所有的输入并提出了以下解决方案:

代码背后:

protected void Page_Load(object sender, EventArgs e)    
{
    Page.ClientScript.RegisterOnSubmitStatement(typeof(Page), "closePage", "window.onunload = CloseWindow();");
}

在aspx页面中:

function CloseWindow() {
    window.close();
}



4> Joel Coehoor..:

回发是重新加载页面的过程,因此如果您希望页面在回发后关闭,那么您需要设置window.close()javascript以在回发期间使用浏览器的onload事件运行,通常使用ClientScript.RegisterStartupScript()功能.

但你确定这是你想做的吗?关闭页面往往会惹恼用户.



5> EndangeredMa..:

您应该注入一个启动脚本,该脚本将在回发完成后关闭页面.

ClientScript.RegisterStartupScript(typeof(Page), "closePage", ""); 

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有