int result = 0;
        bool isnum = int.TryParse(this.TextBox1.Text, out result);
        for (int i = 1; i <= result; i++)
        {
            Literal bai4 = new Literal();                          //声明一个Literal变量
            bai4.Text = "<br/>";
            string id = "ddlx" + i.ToString();
            Label lab = new Label();
            lab.Text = "端口" + i;
            divSelect.Controls.Add(lab);
            DropDownList ddl = new DropDownList();
            ddl.ID = "ddl" + i.ToString();
            ddl.Items.Add("类型" + i.ToString());
            ddl.AutoPostBack = true;
            ddl.SelectedIndexChanged += new EventHandler(dselect);
            divSelect.Controls.Add(ddl);
            //divSelect.Controls.Add(new  Literal("<br/>"));
            divSelect.Controls.Add(bai4);
        }
使用上面的代码动态添加DropDownList控件,但  ddl.SelectedIndexChanged += new EventHandler(dselect);怎么不会触发事件呢????--------------------------------------------------------------------------------

解决方案 »

  1.   

    经过我测试,完全可以触发,不过ddl.Items.Add("类型" + i.ToString()); 这里只加了一个item,根本无从实现SelectedIndexChanged事件啊,你多加一个item看看,另外divSelect是一个什么类型的,我用的是panel,一切正常
      

  2.   

    autopostback=true;
    是不是这问题1
      

  3.   


    我直接copy了你的代码,不是将页面上拖入了一个叫divSelect的panel控件
      

  4.   

    建议这样写:
    page_load
    {
        if(Convert.TOboolean(Viewstate["isok"])==true)
    {
       CreateControl();
    }button_click
    {
      CreateControl();
    }}
    CreateControl()
    {
       ........//创建控件的代码
       viewstate["isok"]=true
    }
      

  5.   

    Viewstate页面变量在本页有效前台加一个autoback=true试试