这是某个ascx控件的底层:
    public class Advertisement : BaseWebControl
    {
        string skinFilename = "Advertisement.ascx";    
        public Advertisement()
        {
            if (SkinFilename == null)
                SkinFilename = skinFilename;
        }        protected override void InitializeSkin(System.Web.UI.Control skin)
        {
            BindAd();
        }没有BaseWebControl的代码....所以现在还不知道是如何实现的..
项目bin文件夹里的DLL是不是在项目开始时都会运行一次,这里有多少个用户控件,就有多少个对InitializeSkin方法的重载,都有效吗

解决方案 »

  1.   

    呵呵,这个要是我没判断错误,在父类里面统一的进行加载。
    就一段代码。Page.LoadControl(SkinFilename)一般这种情况是父类控制程序的具体走向流程,子类填充完成子类功能所需的数据.比如上例中就是各个子类的skinfilename的值不一样,由子类完成数据的初始化等等
      

  2.   


    嗯,这种开发,我已经曾经见过。里面非常多的findcontrol.........在页面中再去查找相应的控件来进行赋值之类的..个人认为,没必要搞这么复杂...
      

  3.   

    个人认为findcontrol 获取ascx中的控件,还是比较好用的.
    一楼正解,不会都一次运行。