动态生成dropdownlist控件后取值问题
用page.findcontrol找不到,有什么好的解决方法么?
------解决方案--------------------详细点,贴部分源码,研究一下
------解决方案--------------------把这行代码 
 d[i].Attributes.Add( "id ",  "d " + i.ToString()); 
 改为 
 d[i].ID =  "d " + i.ToString();   
 然后用 page.findcontrol( "Usercontrol ").Fincontrol( "di ");
------解决方案--------------------用Request.Form[控件ID]取值
------解决方案--------------------在生成ID的时候把ID存入DropDownList的结构体中,然后用结构体去取值.
------解决方案--------------------这样看page.findcontrol什么时候执行的,既然是动态生成的。这个生成是在page.findcontrol之前吗?
------解决方案--------------------d[i].Attributes.Add( "runat ", "server ");
------解决方案--------------------好像reaperwu(过程、方法、人)的方法可以取值,我试了下,这样可以: 
 using System; 
 using System.Collections; 
 using System.ComponentModel; 
 using System.Data; 
 using System.Drawing; 
 using System.Web; 
 using System.Web.SessionState; 
 using System.Web.UI; 
 using System.Web.UI.WebControls; 
 using System.Web.UI.HtmlControls;   
 namespace WebApplication1 
 { 
 	///  <summary>  
 	/// WebForm1 的摘要说明。 
 	///  </summary>  
 	public class WebForm1 : System.Web.UI.Page 
 	{ 
 		protected System.Web.UI.WebControls.Button Button1;  	 
 		private void Page_Load(object sender, System.EventArgs e) 
 		{ 
 			// 在此处放置用户代码以初始化页面 
 			addcontl(); 
 		}   
 		#region Web 窗体设计器生成的代码 
 		override protected void OnInit(EventArgs e) 
 		{ 
 			// 
 			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 
 			// 
 			InitializeComponent(); 
 			base.OnInit(e); 
 		}  		 
 		///  <summary>  
 		/// 设计器支持所需的方法 - 不要使用代码编辑器修改 
 		/// 此方法的内容。 
 		///  </summary>  
 		private void InitializeComponent() 
 		{     
 			this.Button1.Click += new System.EventHandler(this.Button1_Click); 
 			this.Load += new System.EventHandler(this.Page_Load);   
 		} 
 		#endregion   
 		private void Button1_Click(object sender, System.EventArgs e) 
 		{  			 
 			Response.Write(((System.Web.UI.WebControls.DropDownList)Page.FindControl( "Form1 ").FindControl( "d0 ")).SelectedValue.ToString()); 
 		}   
 		private void addcontl() 
 		{ 
 			DropDownList[] d = new DropDownList[5]; 
 			for (int i = 0; i  < d.Length; i++) 
 			{ 
 				d[i] = new DropDownList(); 
 				//d[i].Attributes.Add( "id ",  "d " + i.ToString()); 
 				d[i].ID =  "d " + i.ToString(); 
 				d[i].Items.Add( "string "); 
 				d[i].Items.Add( "int "); 
 				Page.FindControl( "Form1 ").Controls.Add(d[i]); 
 			} 
 		}   
 	} 
 } 
------解决方案--------------------我才发现用d[i].Attributes.Add( "id ",  "d " + i.ToString());和d[i].ID =  "d " + i.ToString();动态生成页面控件后产生的name是不一致的: 
 Attributes.Add所产生html页面控件的name是系统自动分配的,所以用FindControl找不到对象; 
 d[i].ID=所产生html页面控件的name和id想同.   
------解决方案--------------------我上面那段程序不是可以取到id了吧?
------解决方案--------------------up
------解决方案--------------------