LoadControl和公开构造函数之间的区别?

时间:2012-06-29 14:26:41

标签: asp.net user-controls

要在代码隐藏中添加usercontrol,有两种方法。

  1. 将usercontrol构造函数公开给父页面。
  2. 使用Page.LoadControl方法。
  3. 所以基本上有两种不同的方法来完成同样的任务。一种方法在某些情况下是否有效而另一种方法不起作用?它们的工作方式有何不同?何时更喜欢一个而不是另一个?

2 个答案:

答案 0 :(得分:2)

我找到了答案here

  

您需要了解Web自定义控件和Web自定义控件之间的区别   网络用户控制。

     

Web自定义控件,如WebControls(DataGrid,Button,...)   类。要创建它们,只需调用它们的构造函数:Dim b as   Button = new Button()

     

Web用户控件由ASCX页面(包含HTML)和a定义   类。该类只是控件的代码隐藏,所以如果你   调用它的构造函数,你不创建控件。那就是   需要LoadControl方法:您传递ASCX页面的名称,   它加载了这个页面和CodeBehind类。

答案 1 :(得分:0)

LoadControl主要用于在类型不可用时动态地将用户控件添加到页面。大多数用户控件在可更新的网站应用程序中不可用另请注意,由于类型不可用,因此很难设置动态创建的用户控件的属性。

MyControl c = new MyUserControl()是首选,但不会阻止您执行以下操作:

MyControl c = (MyControl)Page.LoadControl('path to ascx');

但是,我认为不需要。