| 10/13/2006
ProgrammaticallyLoadWebUserControlAtRuntime.zip
How can you programmatically load an
ASP.NET 2.0 UserControl at runtime?
First, the UserControl must be
loaded using the LoadControl method. You must pass a string,
that is the virtual path to the UserControl to be loaded, to the
LoadControl method. The LoadControl method returns a control object.
' Declare a variable named controlToLoad of type Control.
Dim controlToLoad
As Control
' Call the Page LoadControl method passing it the virtual path
to
' a ASP.NET UserControl (.ascx file)
' assigning the resulting control object to the controlToLoad
variable.
controlToLoad = Me.LoadControl("~\ExampleUserControl.ascx")
Next, the control instance must be
added to a control collection contained within the page. This could
be the page's control collection, or another control's control
collection, for example a DIV control.
'
Add the control object (an instance of the DemoUserControl class)
'
to the 'bodyRowTwo' DIV contained in this page.
Me.bodyRowTwo.Controls.Add(controlToLoad)
The Visual Studio 2005 ASP.NET
solution source code included with this article demonstrates how to
implement the LoadControl method to dynamically load a UserControl
at runtime:
1. When the web site's default page is
loaded, a single button named 'Select Size' is loaded on the page.

2. When a user clicks the 'Select
Size' button a user control named "DemoUserControl' is
programmatically loaded.

Code
Imports
System.IO
Partial
Class _Default
Inherits System.Web.UI.Page
Public pathToDemoUserControl =
"~\ExampleUserControl.ascx"
Protected
Sub selectSizeButton_Click(ByVal
sender As
Object,
ByVal e As
System.EventArgs) Handles
selectSizeButton.Click
' Clear the DIV where the
DemoUserControl is to be loaded.
Me.bodyRowTwo.Controls.Clear()
' Call this form's
LoadExampleUserControl method.
Me.LoadExampleUserControl()
End Sub
Protected
Sub LoadExampleUserControl()
Try
' Declare a variable named
controlToLoad of type Control.
Dim controlToLoad
As Control
' Call the page's
LoadControl method passing it the virtual path to
' an ASP.NET UserControl
(.ascx file), assigning
' the resulting control
object to the controlToLoad variable.
controlToLoad = Me.LoadControl(pathToDemoUserControl)
' Add the control object
(an instance of the DemoUserControl class)
' to the 'bodyRowTwo' DIV
contained in this page's control hierarchy.
Me.bodyRowTwo.Controls.Add(controlToLoad)
Catch ex
As Exception
' Message user...
Me.statusLabel.Text
= "Exception: " & ex.Message &
_
"." & vbCr &
"Could not load a DemoUserControl."
End Try
End Sub
End
Class
Click the link above to download Visual Basic source code in a Visual Studio 2005
web solution that demonstrates how to programmatically load an
ASP.NET 2.0 UserControl at runtime.
For more information visit the link below:
Get Dot Net Code is a web site full of free and pay for use Visual Basic source code for Visual Basic programmers.
|