0 out of 4 rated this helpful - Rate this topic

TemplateControl.LoadControl Method (String)

Loads a Control object from a file based on a specified virtual path.

Namespace:  System.Web.UI
Assembly:  System.Web (in System.Web.dll)
public Control LoadControl(
	string virtualPath
)

Parameters

virtualPath
Type: System.String
The virtual path to a control file.

Return Value

Type: System.Web.UI.Control
Returns the specified Control.
Exception Condition
ArgumentNullException

The virtual path is null or empty.

If the control supports caching, the object returned from the LoadControl method is not actually a Control object; rather, it is a PartialCachingControl object. If the virtualPath parameter is relative, the path of the loaded control is relative to the path of the TemplateControl.

When you load a control into a container control, the container raises all of the added control's events until it has caught up to the current event. However, the added control does not catch up with postback data processing. For an added control to participate in postback data processing, including validation, the control must be added in the Init event rather than in the Load event.

The following code example demonstrates how to use the LoadControl method to add a user control to an ASP.NET page.

In the OnInit event method, this page uses the LoadControl method to programmatically create a user control on the page. The method adds the control to the Controls property of a PlaceHolder Web server control named Placeholder1.

For the definition of the MyControl class that is used in this code example, see TemplateControl.


void Page_Init(object sender, System.EventArgs e)
{
    // Instantiate the UserControl object
    MyControl myControl1 =
        (MyControl)LoadControl("TempControl_Samples1.ascx.cs");
    PlaceHolder1.Controls.Add(myControl1);
}


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Other Exceptions
The Exceptions section doesn't mention that if you try to load a control by its virtual path, but it doesn't exist, a System.Web.HttpException is thrown.
Example discrepancies
The description of the example code is acurate for the C# example but not VB. Note that there are differences between loading a control in the Load event and the Init event. Also, the VB is not using the placeholder control as described.
LoadControl
The sample has an error (I am very convinced):
LoadControl("control.ascx.cs");
use
LoadControl("control.ascx"); instead.