C# 下拉列表不在后续调用中更新所选项目

C# 下拉列表不在后续调用中更新所选项目,c#,asp.net,C#,Asp.net,我有以下代码 Page_Load () { if (!IsPostBack) { //data binding to ddl year } else { if (ViewState["ddlyear"] != null) { ddlyear.SelectedValue = ViewState["ddlyear"].ToString();

我有以下代码

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()上设置断点该值实际上从未在第一次调用时更改。它将更改一次“选定项目”值,但即使在后续页面调用中选择了其他项目,也不会更改

i、 e

  • 首页加载-年=1000
  • 换一个选项,比如1001
  • 页面重新加载,ddlyear=1001
  • 换一个选项,比如1002
  • 页面重新加载,ddlyear=1001非1002

  • 默认情况下,
    DropDownList
    将维护其
    SelectedItem

    您不需要为此编写任何代码。删除您添加的代码,它应该像您期望的那样工作

    如果您想知道代码失败的原因,那是因为
    Load
    事件在调用任何事件处理程序之前触发。在这里,您将所选值重置为
    视图状态中的值