2012-08-09 248 views
0

我在我的default.aspx頁面中有一個gridview控件,並且在此控件的page_load中填充了此gridview。單擊瀏覽器後退按鈕時頁面不一樣

protected void Page_Load(object sender, EventArgs e) 
    { 
     grd_UserOrderList.DataSource = UserOrderListData.GetOrderList(); 
     grd_UserOrderList.DataBind(); 
    } 

會發生什麼事是,當我進入default.aspx頁,我看到在我的gridview的4個項目,我進入了一個項目,然後單擊後面的瀏覽器的按鈕,我看到2項。我檢查了page_load函數,當點擊返回按鈕時它不會被觸發。當我點擊刷新時,又有4個項目。在我的電腦上工作時遇到這個問題,但是當我將我的項目發佈到服務器時,我沒有遇到同樣的問題。什麼可能是原因?我不在尋找像禁用緩存的臨時修復。我使用ie9作爲瀏覽器。

+0

看吧:http://stackoverflow.com/questions/961188/disable-browsers-back-button – 2012-08-09 08:29:39

+0

不提供的「理由」,因爲我預計緩存工作不回答,我正在尋找修復根的根本原因。 – HOY 2012-08-09 08:47:53

回答

0

試試這個。 How to Refresh Page when called via the Back Button

或者你可以試試這個。

我們可以禁用頁面緩存。然後,如果我們單擊瀏覽器中的後退按鈕,該頁面將重新執行page_load事件以刷新頁面。

代碼如下所示。

protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!IsPostBack) 
      { 
       Response.Buffer = true; 
       Response.CacheControl = "no-cache"; 
       Response.AddHeader("Pragma", "no-cache"); 
       Response.Expires = -1441; 
      } 
      Response.Write(DateTime.Now.ToString()); 
     } 

這也可以幫助你。

<script language="JavaScript"> 

    javascript:window.history.forward(1); 

</script> 
+0

感謝您的答案,但我沒有尋找替代修復,我正在尋找緩存不按預期工作的原因。 – HOY 2012-08-09 08:46:18

+0

因爲在瀏覽器中會存在緩存,並且上一頁將出現在緩存中,因此會加載性能。所以頁面加載不會被執行。 – 2012-08-09 08:50:17

相關問題