2012-07-28 79 views
0

我有一個生成CSV文件的處理程序,並提供下載,該處理器通過按鈕的代碼隱藏叫上我defoult.aasp這樣的:而到Response.End handler.ashx

Response.Redirect("~/Handler.ashx?startDate="+tbStartDate.Text.Trim()+"&endDate="+tbEndDate.Text+"&isCheck="+chkDuplication.Checked.ToString()); 

現在我有一個上面的代碼之後的另一行應該更新我的列表視圖,但列表視圖沒有得到更新,有沒有什麼辦法可以在csv下載後更新列表視圖。

謝謝,

+0

而不是Response.Redirect嘗試使用Server.Execute – HatSoft 2012-07-28 23:09:40

回答

1

問題是與您的重定向。從Microsoft documentation

任何響應的主體內容,如由原始URL指定的頁面顯示HTML文本或 回覆於文字 忽略。

你有一對夫婦的根據需要發生的處理選項:

  1. 如果您不需要張貼頁後退以打開該文件,你可以打開一個新使用您的ashx頁面(包括其查詢字符串)作爲URL的javascript(window.open,目標爲_blank)窗口。

  2. 如果您的頁面需要回發,您可以在服務器端生成javascript,並在頁面首次使用Page.ClientScript.RegisterStartupScript重新加載到瀏覽器時執行。

我們實際上根據具體要求使用兩種方法。一般來說,我們更喜歡第一種方法,即使它意味着在javascript中做了更多的工作,但有時候回發是無法避免的。

0

嘗試使用其指定當前頁的執行是否應終止endResponse屬性,使其false,這樣到Response.End以下行被執行。

當你調用Response.Redirect方法在HTTP處理程序,並要重定向到另一個頁面而不終止的要求,設置endResponse爲false。 Soruce - http://msdn.microsoft.com/en-us/library/a8wa7sdt(v=vs.90).aspx

Response.Redirect("url",false); 
    // code to update your list view