日期:2014-05-18  浏览次数:20511 次

关于动态生成控件并调用相应事件的问题!
我因为项目需要要做一个东西,大体的意思是有一个下拉列表,当选择其中一项的时候会生成第二个下拉列表,然后选择第二个下拉列表以后会出现第三个,就这样一直出。我自己做了个实验,结果发现当我用按钮的点击事件创建下拉列表的时候,创建以后的下拉列表做选择改变,会激发相应的事件。但是当我用下拉列表的选择改事件去创建下拉列别的时候,新创建的下拉列表在第一次的选择改变回发服务器的时候却不会激发相应的事件。cs代码如下:
using   System;
using   System.Data;
using   System.Configuration;
using   System.Collections;
using   System.Web;
using   System.Web.Security;
using   System.Web.UI;
using   System.Web.UI.WebControls;
using   System.Web.UI.WebControls.WebParts;
using   System.Web.UI.HtmlControls;
using   Cooti_Digg.DAL;
using   System.Data.SqlClient;


public   partial   class   Test_Test1   :   System.Web.UI.Page
{


        public   bool   IsDynamicLoadControl
        {
                get
                {
                        object   dynamic   =   ViewState[ "IsDynamicLoadControl "];
                        return   dynamic   ==   null   ?   false   :   true;
                }
                set
                {
                        ViewState[ "IsDynamicLoadControl "]   =   value;
                }
        }
        protected   override   void   LoadViewState(object   savedState)
        {
                base.LoadViewState(savedState);

                if   (IsDynamicLoadControl)
                {
                        loadDrop();
                }
        }

        protected   void   Page_Load(object   sender,   EventArgs   e)
        {

        }
       
        protected   void   DropDownList1_SelectedIndexChanged(object   sender,   EventArgs   e)
        {
                if   (!IsDynamicLoadControl)
                {
                        loadDrop();
                }
        }

        private   void   loadDrop()
        {
             
                DropDownList   dr   =   new   DropDownList();
                dr.ID   =   "dorp "   +