控件            
            DropDownList ddl = new DropDownList();
            ddl.ID = "ddllast"  ;
            ddl.DataSource = db.GetDataSet("select * from leixing where prents=" + list1[0].ToString());
            ddl.DataTextField = "leixing";
            ddl.DataValueField = "id";       
            ddl.DataBind();
            ddl.Items.Insert(0, new ListItem("-请选择-", "0"));
            ddl.SelectedIndexChanged += new EventHandler(DropDownList1_SelectedIndexChanged);
            ddl.AutoPostBack = true;
            Panel1.Controls.Add(ddl);
事件 
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        DropDownList list = sender as DropDownList; ;
        Session["leixing"] = list.SelectedValue;
        leixing(int.parse(list.SelectedValue));
    }
根本不做那里面的事件 我下拉框里选过个东西 连动态创建的控件都没了 关panel的事吗 
我以前做用户控件也是 只第一次有反映后面就没了 是关PostBack的事吗

解决方案 »

  1.   

    不是的,如果页面刷新,控件就会消失,所以需要你在Page_Load中再创建一遍动态创建的控件
    //控件的状态会被保存的,不用考虑
      

  2.   

    ASP.NET不太懂,只能帮忙顶下。
      

  3.   

    动态添加回传控件会丢失,还要通过viewstate保存相关值。保持其持久性
    或JS添加input
    ControlCollection controls;
    if (Session["controls"] == null)
       controls = new ControlCollection(new System.Web.UI.Control());
    else
      controls = (ControlCollection)Session["controls"];
    foreach (System.Web.UI.Control control in controls)
      panel1.Controls.Add(control);
      

  4.   

    那就要调转页面是吗
    不跳转 怎么触发 load。。
      

  5.   

    把创建好的进session 还是controls 全部集成一起 然后慢慢找
    能说明白点吗
      

  6.   

    当你按页面上某个按钮时也会执行Page_Load的
      

  7.   

    比如你定义一个方法(该方法可定义成本页面类的成员方法,即在.cs文件中定义)
    public void CreateControl()
    {
      DropDownList ddl = new DropDownList();
      ddl.ID = "ddllast" ;
      ddl.DataSource = db.GetDataSet("select * from leixing where prents=" + list1[0].ToString());
      ddl.DataTextField = "leixing";
      ddl.DataValueField = "id";   
      ddl.DataBind();
      ddl.Items.Insert(0, new ListItem("-请选择-", "0"));
      ddl.SelectedIndexChanged += new EventHandler(DropDownList1_SelectedIndexChanged);
      ddl.AutoPostBack = true;
      Panel1.Controls.Add(ddl);}
    然后在Page_Load中调用这个方法就可以了
      

  8.   


    顶楼上这个方法,楼主应该去试一试。打断点调试了没,你点按钮页面回发,需要在Page_load里执行一遍你的CreateControl()方法,才会有
    ddl.SelectedIndexChanged += new EventHandler(DropDownList1_SelectedIndexChanged);