2012-05-23 69 views
0

我有以下網絡應用程序: - 一個下拉菜單,以改變星期的日子 - 一個跨越根據上述選擇更新其內部文本 - 下拉是設置爲autopostback如何解決ASP.NET下拉歷史導航問題

我的問題是,當從瀏覽器按鈕導航回來和前進頁面不一致。例如:在初始狀態下,星期幾是「星期一」,無論是在下拉和跨度。如果我更改爲「星期二」,則所有內容都會更新得很好,但如果我現在點擊「後退」按鈕,則跨度將變回「星期一」,但下拉不變。

enter image description here

有什麼辦法來解決這個問題的緩存?

這裏是一個簡單的Web應用程序:

<form id="form1" runat="server"> 
<div> 

<asp:DropDownList ID="DaysCombo" runat="server" 
     AutoPostBack = "true" 
     onselectedindexchanged="DaysCombo_SelectedIndexChanged"    
     />  

<div runat="server"> 
    <span id="ContentSpan" runat="server"></span> 
</div> 

</div> 
</form> 

和代碼隱藏:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!this.IsPostBack) 
     { 
      string[] days = new string[] { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" }; 
      this.DaysCombo.DataSource = days; 
      Page.DataBind(); 
      this.ContentSpan.InnerText = days[0]; 
     }   

    } 

    protected void DaysCombo_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     this.ContentSpan.InnerText = this.DaysCombo.SelectedValue;    
    }  

回答

0

你最好不要,因爲它避免了回發到服務器使用客戶端的JavaScript 。你可以添加一個JavaScript負載和更改監聽器,以確保跨文本和下拉同步

+0

這個簡約的例子只是爲了呈現問題,在現實中,而不是跨度我有許多服務器控件,背後。 – Elz

+0

瀏覽器後退按鈕用所有填入輸入值的輸入字段恢復頁面。我想你可以禁用瀏覽器緩存,以便始終從服務器檢索頁面,或者可以使用ASP.NET Ajax並將其全部包裝到UpdatePanel中,以便瀏覽器後退按鈕未啓用? –

+0

@Elz抱歉,在之前的評論中忘記了@你 –