2009-05-28 53 views
0

我的網站上有一個頁面,用戶必須先填寫詳細信息才能下載文檔。用戶詳細信息部分位於MultiView控件的第一個視圖中。asp.net make button顯示MultiView的不同視圖並下載文件

填寫自己的詳細資料後,我想用戶點擊一個按鈕,它會顯示他們一個文件下載提示(我已經成功地與一個ASHX處理程序做到了這一點)然後重定向到的第二個視圖頁面MultiView會說「謝謝你下載」或類似的東西。

我已經嘗試了按鈕點擊事件處理程序中通常的Response.Redirect("~/DownloadHandler.ashx");,但顯然這會阻止頁面完成回發並顯示MultiView的最後一頁。

有沒有解決方法,或者我應該改變我的用戶界面以適應此?

編輯: 我已經得出結論,這是更好地只是提供一個超鏈接到文件(我的確認頁,並更改相應的措辭),因爲這提供了一個一致的用戶體驗無關他們的瀏覽器使用。

回答

1

繼續並將它們帶到MultiView的第二個視圖。添加JavaScript方法,將下載的文件,並從codebehind.1如觸發它,

在你的頁面:

<script> 
function downloadFile(url) { 
window.location = url; 
//you could also try window.open(url, 'Download') 
} 
</script> 

在後面的代碼:

script = string.Format("downloadFile('{0}');", "DownloadHandler.ashx"); 
Page.ClientScriptManager.RegisterStartupScript(typeof(Page), "download", script, true); 

你也可以在文件下載之前添加一個延遲(使用setTimeout)。

更多信息: Initiating a file download that works well, even in IE?