2017-09-05 225 views
-1

我想提供一個鏈接按鈕(asp)與附加到它在C#中的點擊功能。當用戶點擊鏈接按鈕後端代碼發送一個PDF文件給用戶下載。下載文件點擊Linkbutton asp.net

我已經完成了代碼,它似乎在打開頁面時下載文件。但在我的一個案例中,它將打開頁面作爲Windows對話框。

在這種情況下,當我點擊linkbutton代碼執行,但沒有發生下載操作。在使用windows.open打開的「窗口」對話框中加載相同的頁面時,文檔的下載失敗。

如:父頁:Dashboard.aspx 子頁面:DownloadFormatSelector.aspx 我瀏覽到localhost/DownloadFormatSelector.aspx頁面並點擊「下載」按鈕,瀏覽器(IE)顯示選項「另存爲」,」打開」。

但是,如果我使用window.showModalDialog從儀表板打開DownloadFormatSelector.aspx頁面。下載不會發生 例如:使用window.showModalDialog打開localhost/Dashboard.aspx和DownloadFormatSelector.aspx頁面。

我被困爲什麼當頁面呈現在window.showModalDialog裏面時,它不下載文檔或顯示另存爲選項。

以下所有代碼都存在於DownloadFormatSelector文件中。

Dashboard.aspx只是父窗口。我能夠執行下載時,子窗口導航到(像localhost/DownloadFormatSelector.aspx),但同一頁面時打開window.showModalDialog內我無法下載文件有頁面不顯示任何保存爲或打開下面的選項。我有什麼可以修改執行頁面上保存的showModalDialog內

代碼C#點擊:

public void DownloadButton_Click(Object sender, EventArgs e) 
{ 
    byte[] data=GetData(); 
    Response.Clear(); 
    Response.AddHeader("Content-Disposition", 
    String.Format("attachment;filename={0}", "temp.pdf"));    
    Response.ContentType = "application/pdf"; 
    Response.BinaryWrite(data); 
    Response.End(); 
} 

Asp.Net

<asp:LinkButton id="Link" Text="Download" OnClick="DownloadButton_Click" runat="server"/> 

在窗口中打開對話框:

window.showModalDialog JS method to call another aspx page to be rendered inside the dialog window 
+0

你是什麼意思的「打開頁面作爲一個Windows對話框」?這段代碼應該向客戶端發送一個文件,但不清楚問題是什麼。 – David

+0

嗨大衛, 我打開類似於這篇文章的aspx頁面window.open('child_page.html','name','width = 200,height = 200'); ..從這個鏈接https:// stackoverflow.com/questions/5660700/javascript-to-open-popup-window-and-disable-parent-window –

+0

「頁面在窗口對話框中加載」。什麼窗口對話框?你的意思是你收到一條消息,詢問你是否打開或保存它? – ADyson

回答

0

您正在尋找Response.TransmitFile。下面是你如何做到這一點:

public void DownloadButton_Click(Object sender, EventArgs e) 
{ 
    var filePath = "path to your file"; 
    Response.ContentType = "application/octet-stream"; 
    Response.AppendHeader("Content-Disposition","attachment; filename=whatever.ext"); 
    Response.TransmitFile(filePath); 
    Response.End(); 
} 
+0

嗨Bozhidar,感謝您的代碼。但我問題是關於JS window.showModalDialog不讓子窗口顯示保存爲或打開選項 –