我发现我在遍历界面的控件时,动态生成的控件取不到!
在取值的时候vPanel.Count一直是0,而我在放入数据的时候不是的。设置界面:   
   DataTable dt=Query.ProcessSql(strSQL,"SeeHouse");
   for (int i = 0; i < dt.Rows.Count; i++)
   {
        CheckBox chk=new CheckBox();
        chk.Text=dt.Rows[i]["c_Name"].ToString();
        chk.ID ="VChk_"+dt.Rows[i]["c_PK"].ToString();
        vPanel.Controls.Add(chk);
   } 取值:
private void GetEnvironmentValue()
{
     foreach(Control ctl in vPanel.Controls)
     {  
          if(ctl.GetType().Name=="CheckBox")
          {
               CheckBox cb=new CheckBox();
               cb=(CheckBox)this.FindControl(ctl.ID);
               string strID = ctl.ID;
               if(cb.Checked)
                   m_strEnvironment += strID;
          }        
      }
}

解决方案 »

  1.   

    如何再次生成控件? 就是这个吗? DataTable dt=Query.ProcessSql(strSQL,"SeeHouse");
       for (int i = 0; i < dt.Rows.Count; i++)
       {
            CheckBox chk=new CheckBox();
            chk.Text=dt.Rows[i]["c_Name"].ToString();
            chk.ID ="VChk_"+dt.Rows[i]["c_PK"].ToString();
            vPanel.Controls.Add(chk);
       } 
      

  2.   

    paga.load.......{置界面:   
       DataTable dt=Query.ProcessSql(strSQL,"SeeHouse");
       for (int i = 0; i < dt.Rows.Count; i++)
       {
            CheckBox chk=new CheckBox();
            chk.Text=dt.Rows[i]["c_Name"].ToString();
            chk.ID ="VChk_"+dt.Rows[i]["c_PK"].ToString();
            chk.EnableView = true ;
            vPanel.Controls.Add(chk);
       } }