要在代碼隱藏中添加用戶控件,有兩種方法。LoadControl和暴露構造函數之間的區別?
- 將usercontrol構造函數公開給父頁面。
- 使用Page.LoadControl方法。
所以基本上有兩種不同的方式來完成同一個任務。一種方法在某些情況下工作,另一種方法不工作?它們的工作方式有什麼區別?和什麼時候更喜歡一個呢?
要在代碼隱藏中添加用戶控件,有兩種方法。LoadControl和暴露構造函數之間的區別?
所以基本上有兩種不同的方式來完成同一個任務。一種方法在某些情況下工作,另一種方法不工作?它們的工作方式有什麼區別?和什麼時候更喜歡一個呢?
LoadControl
主要用於在類型不可用時動態地將用戶控件添加到頁面。大多數用戶控件在可更新的網站應用程序中不可用。另請注意,由於該類型不可用,動態創建的用戶控件的屬性很難設置。
MyControl c = new MyUserControl()
是首選,但不會做這樣的事情阻止你:
MyControl c = (MyControl)Page.LoadControl('path to ascx');
不過,我不認爲有必要。
我找到了答案here
您需要了解的Web自定義控件和 Web用戶控件之間的差異。
Web自定義控件,如WebControls(DataGrid,Button,...)是 類。要創建它們,您只需調用它們的構造函數:Dim b as Button = new Button()
Web用戶控件由ASCX頁面(包含HTML)和 類定義。該類只是控件的代碼隱藏,因此如果您調用其構造函數,則不會創建該控件。這就是需要使用LoadControl方法的地方:將ASCX頁面的名稱 傳遞給它,並加載此頁面和CodeBehind類。
這不完全正確。看我的帖子 –