2015-08-28 100 views
0

我將ASP.Net頁面重定向到下載頁面,並使用ajax。重定向頁面確實起作用,文件被下載並且顯示了稱爲下載的頁面。我需要在下載文件後調用javascript以刪除等待的屏幕。Javascript不能在使用ajax的response.redirect上工作ASP.Net

我第一次打電話給redirect,然後javascript打開UI。阻止用戶界面,我正在使用onclientclick ='block()';

Response.Redirect("ExportFile.aspx, false); 
ScriptManager.RegisterClientScriptBlock((this), this.GetType(), "alertAction", "alert('');unblock();", true); 

即使警報不工作,所以JS根本沒有被解僱。我厭倦了將代碼放在文件下載頁面上,但這也不起作用。我甚至嘗試過身體onpageunload但是從來沒有開火。

我該如何重定向到文件下載頁面,然後調用JS來解鎖UI?

+0

我不知道但如果你將重定向用戶,這是不尋常的塊整個頁面。 –

+0

問題沒有解決。我打電話給jquery block Ui。將頁面變成透明黑色。現在我需要解鎖它,但我無法得到任何JS發射。 –

回答

0

一旦發生response.redirect,則不能執行其他代碼。 我建議在JavaScript中編寫重定向代碼並將其放入RegisterClientScriptBlock中。只要確保unblock在window.location之前。

ScriptManager.RegisterClientScriptBlock((this), this.GetType(), "alertAction", "unblock(); window.location.assign('yourPage.aspx');", true); 
+0

我確實嘗試過,但確實有效,但首先解鎖的代碼會先觸發,然後網頁開始下載。數據來自wcf服務,大約需要20秒。由於解除阻止代碼被激發,用戶將看不到任何內容,直到文件準備就緒。 –

+0

當文件準備就緒時,你可以啓動一個javascript函數嗎?或使用自定義事件?然後,您可以使用「RegisterClienScriptBlock」函數設置偵聽器,一旦文件準備就緒,它就會解鎖頁面。 – SeanKendle

+0

WCF服務獲取數據後,我在導出頁面的頁面加載過程中完成,但是在數據準備好保存並且沒有激發js後,該頁面消失。 –

0

boruchsiper是正確的。另外,一旦你重定向了他們,你就在另一個頁面上(如果我的假設是正確的,你將重定向到不同的頁面)。您想在新的頁面抵達後,火過這一行,所以你會希望它在該頁面的代碼背後的Load()功能:

ScriptManager.RegisterClientScriptBlock((this), this.GetType(), "alertAction", "alert('');unblock();", true);

您可能要包括在查詢字符串重定向URL以告知該頁面採取該操作。

+0

我也試過,我也將腳本管理器更改爲啓動腳本。即使Body = onunload也不會在導出頁面上觸發。 由於頁面A重定向到下載文件頁面,該頁面甚至從未見過。出於某種原因下載文件或導出數據,您必須重定向頁面 –