當我使用__doPostBack開始回發時,會創建一個文件並返回給用戶以在HttpContext.Current.Response
中進行下載。如何停止刷新客戶頁面的回發
因爲我改變Response
,包括它的JavaScript值的頁面不被修改
但是,當我沒有文件輸出時,頁面被刷新(因爲回傳的),並在頁面上的JavaScript修改是丟失。
我該如何'停止'回傳繼續並堅持我目前的頁面?我無法使用異步回發,因爲我需要回發讓用戶下載文件。
編輯:在評論一些問題後更多信息:
- 該文件要求在web服務請求。 webservice需要 執行大量查詢以確定是否創建文件。 I 寧願這隻發生一次。
- 用戶可以拖放一些將在文件 請求中使用的過濾器。如果沒有文件可用,用戶應該能夠更改他的過濾器,這就是爲什麼該頁面不應該改變。
第一個是在我腦海中的(未測試):使用隱藏的按鈕爲[PostbackTrigger](http://msdn.microsoft .com/en-us/library/system.web.ui.postbacktrigger.aspx)。在您創建文件的serverside處理程序中(或者不是)到目前爲止,如果您有文件,請註冊javascript以單擊此按鈕。處理此事件並傳遞文件。如果沒有文件,請不要註冊腳本。 – 2012-01-05 16:03:51
它會工作,但我的問題是,該文件是從web服務請求。我不知道在請求完成之前是否會有文件。通過您的解決方案,該文件將被創建兩次。這是一個沉重的要求,可能需要一些時間,所以我寧願不這樣做兩次。 – 2012-01-05 16:11:58
爲什麼您需要創建該文件以確定它是否存在?這聽起來很奇怪。我會添加一個方法到你的web服務中,它會在不創建的情況下進行檢查。 – 2012-01-05 16:14:55