protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
        codeDownlist1 = DropDownList1.SelectedValue; 
        codeDownlist2 = DropDownList2.SelectedValue; 
        GetInspectionItem(); 
        ClearFormControl(); 
    } 
    protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e) 
    { 
        codeDownlist1 = DropDownList1.SelectedValue; 
        codeDownlist2 = DropDownList2.SelectedValue; 
        GetInspectionItem(); 
        ClearFormControl(); 
    }

解决方案 »

  1.   

    每次autoPostBack都是先执行page_load中的!isPostBack外面的代码,然后在执行对应的事件,相当于每次都初始化了,所以没值,需要有值就在事件中在赋值就行了,或者刚开始把值存起来
      

  2.   

    应该是pageload里面的问题,你看看是不是把初始化的代码没有放在if(!IsPostBack){}里面
      

  3.   

    嗯,我不知道codeDownlist1,codeDownlist2是做什么用。
    但是Aspx界面中任何类变量、临时性变量在刷新后就被重置为初始值。想保留这些变量的值,建议用下面方法一、不用普通变量做为保存值,而是用ViewState
    在类变量里这样定义, 就是将你以前定义
    public string codeDownlist1 = "";public string codeDownlist2 = "";
    换成如下代码    private String codeDownlist1
        {
            get
            {
                if ( ViewState["codeDownlist1"] == null )
                {
                    return String.Empty;
                }
                else
                {
                    return ViewState["codeDownlist1"];
                }
            }
            set
            {
                ViewState["codeDownlist1"] = value;
            }
        }    private String codeDownlist2
        {
            get
            {
                if ( ViewState["codeDownlist2"] == null )
                {
                    return String.Empty;
                }
                else
                {
                    return ViewState["codeDownlist2"];
                }
            }
            set
            {
                ViewState["codeDownlist2"] = value;
            }
        }这样,其它的程序代码不变。一样取值。第二种方式:在界面用用隐藏控件保存值
    第三种方式:向楼上所说,每一次操作,都把这些值重要赋值一遍