How to add user control on run time in ASP.NET?

16,808

Solution 1

In your aspx

<div id="div1" runat="server">

</div>

In Page_Load

    UserControl uc = (UserControl)Page.LoadControl("test.ascx");
    div1.Controls.Add(uc);

All you need to do is make your div server bound by adding runat="server", and in the codebehind use Page.LoadControl to go out and fetch your usercontrol and then add it to your div using the div's Controls.Add

Solution 2

// Load the User Control

Control uc = LoadControl("~/MyUserControl.ascx");

// Add the User Control to the Controls collection

Page.Controls.Add(uc);

for more details go thru this link - An Extensive Examination of User Controls http://msdn.microsoft.com/en-us/library/ms972975.aspx

Also do read the use of ~ tidle in .net http://msdn.microsoft.com/en-us/library/system.web.virtualpathutility.aspx

Solution 3

Use the Page's LoadControl method to do this programmatically:

http://msdn.microsoft.com/en-us/library/t9ecy7tf.aspx

Also, if your intention is to add it to the div, make sure you make that div a server control by adding runat="server" in the markup

Share:
16,808
Ahmed
Author by

Ahmed

Updated on June 12, 2022

Comments

  • Ahmed
    Ahmed almost 2 years

    How do I add a user control on page load dynamically in ASP.NET?

    I have a div with ID="contentData" and few controls

    • one.ascx
    • two.ascx
    • three.ascx

    Now I have created a page default.aspx, which may get parameters in query string, in one of the following ways:

    default.aspx?val=one  
    default.aspx?val=two  
    default.aspx?val=three
    

    I am taking the value from

    Request.QueryString["val"]
    

    Now how do I load specific control in this?

    <div ID="controlData"></div>