Control aSignIn_uc=LoadControl("SignIn_uc.ascx");
这句话是把用户控件取出来,返回的是Control类型的引用SingIn_uc。
加载用户控件后,就可以把控件添加到页面的某个容器空间中。
//声明容器
protected System.Web.UI.WebControls.PlaceHolder placesignin;
//把刚才的控件加到里面去
placesignin.Controls.Add(SignIn_uc);
LoadControl使得动态加载变得轻而易举,但是这样做我们没有办法使用用户控件自定义的属性和时间。因为这里加载了一个Control类型的空间,而SignIn_uc的属性或者时间并不是Control类的成员。
要使用用户控件自定义的属性和时间,就需要把对Control类型控件的引用转换成对用户空间类型的引用。如下:
SignIn_uc_ascx aSignIn_uc=LoadControl("SigIn_uc.ascx");
这里,SignIn_uc_ascx是ASP.NET生成的用来代表signin_uc空间的类,注意,在前面我们看到用户控件来自于SignIn基类,这个SignIn_uc_ascx类不过是将.ascx文件的扩展名和文件名用下划线连接而已,如果要给这个类命名,可以在.ascx文件中包含一个@Control民另,如下:
<%Control ClassName="SignIn_uc"%>