从代码隐藏关闭ASPX页面的最佳方式是什么?从后面的代码以编程方式关闭aspx页面
我有一个按钮事件处理程序,我想在用户点击页面上的ASP.NET按钮后关闭页面。我试图以编程方式将包含window.close()
命令的JavaScript方法添加到OnClientClick
事件以关闭页面,但它不起作用。该按钮也是AJAX更新面板的asp:AsyncPostBoskTrigger
。
该应用程序使用.NET Framework 3.5。
从代码隐藏关闭ASPX页面的最佳方式是什么?从后面的代码以编程方式关闭aspx页面
我有一个按钮事件处理程序,我想在用户点击页面上的ASP.NET按钮后关闭页面。我试图以编程方式将包含window.close()
命令的JavaScript方法添加到OnClientClick
事件以关闭页面,但它不起作用。该按钮也是AJAX更新面板的asp:AsyncPostBoskTrigger
。
该应用程序使用.NET Framework 3.5。
更新:我已经采取了所有的输入,并具有下列解决方案上来:
在后面的代码:
protected void Page_Load(object sender, EventArgs e)
{
Page.ClientScript.RegisterOnSubmitStatement(typeof(Page), "closePage", "window.onunload = CloseWindow();");
}
在aspx页面:
function CloseWindow() {
window.close();
}
回发是重新加载页面的过程,所以如果你希望页面在回发后关闭,那么你需要设置你的window.close()javascript在浏览器的onload事件中运行,通常使用ClientScript.RegisterStartupScript()
函数完成。
但是你确定这是你想要做的吗?关闭页面往往会让用户失望。
您应该注入一个启动脚本,在回发完成后关闭页面。
ClientScript.RegisterStartupScript(typeof(Page), "closePage", "<script type='text/JavaScript'>window.close();</script>");
它使用的代码行到我的网页,并关闭它的时候了。一旦用户单击页面上的ASP.NET按钮控件,我需要关闭页面。 – 2008-12-17 18:25:11
将它放在代码隐藏中的按钮onclick事件处理程序中。 – EndangeredMassa 2008-12-17 18:26:23
你通常会这样做:
protected void btnClose_Click(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript(typeof(Page), "closePage", "window.close();", true);
}
但是,请记住,不同的情景会发生在不同的scenerios中。 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:
<html><head>
<title></title>
<script language="javascript" type="text/javascript">
var redirectTimerId = 0;
function closeWindow()
{
window.opener = top;
redirectTimerId = window.setTimeout('redirect()', 2000);
window.close();
}
function stopRedirect()
{
window.clearTimeout(redirectTimerId);
}
function redirect()
{
window.location = 'default.aspx';
}
</script>
</head>
<body onload="closeWindow()" onunload="stopRedirect()" style="">
<center><h1>Please Wait...</h1></center>
</body></html>
注意close.html将重定向,如果窗口的Default.aspx由于某种原因在2秒后不关闭。
您可以通过简单地粘贴在按钮的事件的OnClientClick窗口关闭代码在标记
protected void btnOK_Click(object sender, EventArgs e)
{
// Your code goes here.
if(isSuccess)
{
string close = @"<script type='text/javascript'>
window.returnValue = true;
window.close();
</script>";
base.Response.Write(close);
}
}
用于关闭ASP关闭窗口。净Windows应用程序,
然后写它的单击事件中的如下代码
" this.close(); "
即:
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
你只需要在你的asp:Button元素中添加这个属性(例如):
OnClientClick="javascript:window.close();"
它完美地工作。
如果您在使用RadAjaxManager那么这里就是这有助于代码:
RadAjaxManager1.ResponseScripts.Add("window.opener.location.href = '../CaseManagement/LCCase.aspx?" + caseId + "';
window.close();");
protected void Button1_Click(object sender, EventArgs e)
{
Button1.Attributes.Add("onclick"," CloseWindow();");
}
<script type="text/javascript">
function CloseWindow()
{
window.close();
}
</script>
它做回发,并在第二次点击,IE要求确认关闭浏览器。 – Bachask8 2015-06-30 15:44:32