2010-11-18 26 views
2

這裏我的情況:ASP.NET - 如何在文件下載後回發頁面?

用戶點擊一個LinkBut​​ton,並且頁面做回發。但我也需要同時提示文件下載給用戶。

爲了做到這一點,我這樣做是對的LinkBut​​ton

 
lnkPrint.Attributes.Add("onclick", "window.open('Download.ashx?type=x')"); 

Download.ashx HTTP處理程序生成的文件(內容類型:應用/ PDF),如果我點擊在我的LinkBut​​ton上,它顯示一個彈出窗口後顯示PostBack並下載文件...但我無法設置自動關閉此彈出窗口。

我嘗試了一些方法

  • 的setTimeout( 'self.close()',1000)下載
  • 設置一個的RegisterStartupScript在LinkBut​​ton.Command,觸發回發後下載後,但IE6提示一個警告,擾亂我的用戶

因此,這些方法都沒有工作正常。

所以,我的問題是:有沒有辦法讓彈出窗口立即消失,還是有辦法讓頁面同時回傳下載文件

PS:我認爲的您的下載即將開始方法,但我怕我有同樣的問題與之前的RegisterStartupScript ...

+0

我遇到同樣的問題。你找到解決方案嗎? – mga911 2011-01-02 05:20:29

回答

3

如果你想關閉該窗口馬上,你真的需要窗戶嗎?你就不能這樣做:

<a href="Download.ashx?type=x">Download</a>

那麼有沒有彈出,如果內容部署設置爲附件,你會不會將用戶重定向到一個空白頁。

+0

我需要知道用戶是否點擊了LinkBut​​ton,所以我必須得到Command事件。不幸的是,如果我在download.ashx上重定向,頁面將不會回發。 – Safirio 2010-11-18 14:28:52

+0

我不完全理解 - 爲什麼頁面必須回發? – 2010-11-19 02:24:09

0

爲什麼不做正常的回發,但然後讓你的迴應,文件下載?只要執行Response.BinaryWrite()...並使用Response.ContentType 另外,您可以將content-disposition標頭設置爲您選擇的文件名。

+0

這不起作用,因爲下載頁面將結束響應。換句話說,我不能同時擁有應用程序/ pdf響應和回發響應 – Safirio 2010-11-18 14:31:02

相關問題