從代碼隱藏關閉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