情况是这样的:
      我首先创建了一个用户控件,我们暂时叫做 b.ascx..里边放了一个 CheckBox(id为:chk1)
      然后在另一个页面, 叫做 a.aspx 里边放置一个 PlaceHolder(id为:placeHolder1) ,通过代码加载这个用户控件。。运行 a.aspx,这个用户控件 可以显示。在这个页面里边还有一个按扭 ,我们叫做 button1 吧,当我点击这个按钮时,会运行:
      foreach(Control ct in placeHolder1.Controls )
      {
             CheckBox chk = (CheckBox)ct.FindControls("chk1");
            if(chk.Checked)
            {
              ...........
               } 
      }现在的问题是,我 foreach 里边的代码根本不会执行。经我调试,发现placeHolder1.Controls老是没有控件,因为运行到这里时,placeHolder1.Controls.Count 为 0 ,想问一下,这个要怎么解决?
     期等答案中..........
         thanks!  

解决方案 »

  1.   

    foreach(Control uc in panel1.controls)  
    {  
      if(uc is UserControl)  
      {  
       foreach(Control c in uc.Controls)  
       {  
        if(c is Label){}  
      }  
      }  
    }
      

  2.   


    高兴,我今天找到为什么的原因了。
       是因为页面的 PlaceHolder 是动态加载的当回传的时候会先执行 页面的 Load 事件而我的
    PlaceHolder 的动态加载,是在  if(!Page.IsPostBack())里的,所在才会没有 控件(当我们执行服务器端的代码时候,首先执行 页面的 Load 事件)
        希望大家一块讨论一下,asp.net 里的回传控件的运行流程。?