动态的创建了N个CheckBoxList控件并添加到一个Panel里面。
如何引用这N个CheckBoxList控件呢?

解决方案 »

  1.   

    obj_con=FindControl(controlname)
    然后引用
      

  2.   

    CheckBoxList l = new CheckBoxList()
    i.id = "list";
    CheckBoxList newlist = (CheckBoxList )(panel.findcontrol("list"));
      

  3.   

    问题是每次clik事件激发后,动态生成的控件并没有被保留,Panel里面是空的,怎么办呢?
      

  4.   

    用反射
    using System;
    using System.Reflection;
    public class LoadInvoke
    {
        public static void Main(string[] args)
        {
            Assembly a = Assembly.LoadFrom(args[0]);
            Type[] mytypes = a.GetTypes();
            BindingFlags flags = (BindingFlags.NonPublic | BindingFlags.Public | 
                BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly);        foreach(Type t in mytypes)
            {
                MethodInfo[] mi = t.GetMethods(flags);
                Object obj = Activator.CreateInstance(t);            foreach(MethodInfo m in mi)
                {
                    m.Invoke(obj, null);
                }
            }
        }
    }using System;
    public class MyAssembly
    {
        public void MyMethod1()
        {
            Console.WriteLine("Invoking MyAssembly.MyMethod1");
        }    
    }
      

  5.   

    把panel放到session中,click后在还原回来
      

  6.   

    >>>动态生成的控件并没有被保留,Panel里面是空的,怎么办呢?
    you need to re-create the dynamic controls upon postback, 参考http://www.codeproject.com/aspnet/retainingstate.asp