2013-01-14 40 views
0

當用戶選中某個複選框並單擊某個特定按鈕時,我已經在服務器上做了一些操作,然後使用Response.Redirect「重置」該頁面。我還有一個函數,它允許我通過使用application/vnd.openxmlformats-officedocument.spreadsheetml.sheet響應將「數據表」導出到Excel電子表格。從一個ASP頁面創建多個響應

這兩種工作方式在分開時非常有效。但是,我現在需要做的是在點擊一個按鈕後發生這兩個事件。

似乎我需要在導出到excel後刷新響應,然後重定向響應,但我似乎無法使其工作。我可以在這一點上解決,需要一些幫助。由於

編輯:

好吧,我已經決定打開一個新頁面(downloadexcel.aspx),然後將開始下載並關閉下載完成後,去了解這一點。我使用javascript將它寫入當前頁面的響應來打開downloadexcel.aspx。但是,由於某種原因,在原始頁面重新定向之前,窗口並未打開。他們是我重定向之前被調用的方法嗎?也許我有一個語法問題?

Response.Write("<script type='text/javascript'>window.open('~/DownloadExcel.aspx', '', ''); </script>") 

     Response.Redirect("~/BulkImport.aspx") 
+0

這不起作用,您不能在同一時間返回200與響應正文和302與新位置。試着重新思考你的方法。 –

+0

你可以添加一些javascript到重置頁面來啓動下載(當某個QueryString存在時)。即'if(Request.QueryString ['export'] =='1'){response.write(「「); }' – Malk

+0

我已經嘗試過,但遇到問題,請參閱OP中的編輯。 –

回答

0

如果您想在單個HTTP請求中執行此操作,那麼您將獲得單個響應。您可以或者返回 HTTP 200(以文件作爲內容)或HTTP 301重定向客戶端。你不能同時返回。

底線是,你將需要重新思考你的方法,你可以使用javascript「清理」客戶端的表單,而不是使用重定向重新加載頁面。