2013-02-06 53 views
0

我有下面的代碼下拉列表不更新所選項目的後續調用

Page_Load() { 
if (!IsPostBack) 
    {    
      //data binding to ddl year  

    } else { 
     if (ViewState["ddlyear"] != null) 
      { 
       ddlyear.SelectedValue = ViewState["ddlyear"].ToString(); 

      } 
     } 
} 

ddlyear_SelectedIndexChanged { 
    ViewState["ddlyear"] = ddlyear.SelectedItem.Value.ToString(); 
} 

繼承人的錯誤。

  • 在ddlyear中加載頁面選擇項,重新加載頁面,並在ddl中正確顯示該項。

  • 如果我改變顯示選擇的項目將不會改變。

如果我在ddlyear.SelectedItem.Value.ToString();上放置了斷點,實際上這個值從來沒有在第一次調用時發生變化。它會改變一次,到選定的項目值,但不會改變,即使在後續頁面調用中選擇了另一個項目。

  1. 第一頁負載 - ddlyear = 1000
  2. 變化到另一種選擇,可以說,1001
  3. 頁面重載,ddlyear = 1001
  4. 變化到另一種選擇,可以說1002
  5. 頁面重新加載,ddlyear = 不是1002

回答

1

A DropDownList將默認保持其SelectedItem
您不需要爲此編寫任何代碼。刪除你添加的代碼,它應該像你期望的那樣工作。

如果您有興趣知道代碼失敗的原因,那是因爲Load事件在任何事件處理程序被調用之前觸發。這裏您將所選值重置爲ViewState中的值。

相關問題