How to: Create Instances of ASP.NET User Controls Programmatically

 
    

To create an instance of a user control programmatically

 
    
  1. In the user control, be sure that the @ Control directive contains a ClassName attribute that assigns a class to the user control.

    The following example sets the ClassName attribute to strongly type a user control.

     
     
    <%@ Control className="MyUserControl" %>
    
  2. In the page where you want to work with the user control, create a reference to the user control with the @ Reference directive.

    When you create the user control programmatically, the strong type for your user control is available to the ASP.NET Web page only after you have created a reference to it. For example, the following code creates a reference to a user control created in the MyUserControl.ascx file.

     
     
    <%@ Reference Control="MyUserControl.ascx" %>
    
    NoteNote

    You use the @ Reference when you intend to load the control programmatically. You use the @ Register directive when you add a user control to the page declaratively. For details, see How to: Include a User Control in an ASP.NET Web Page.

  3. Create an instance variable for the user control, using the control's class name. The class will be part of the ASP namespace.

    For example, if you want to create an instance of the user control declared as class Spinner, you use syntax such as the following:

    VB
     
    Protected Spinner1 As ASP.Spinner
    

     

    C#
     
    Protected ASP.Spinner Spinner1;
    
  4. Create an instance of the user control in code by calling the LoadControl method.

  5. Assign property values as necessary, and then add the control to the ControlCollection collection of a container on the page, such as a PlaceHolder control.

    NoteNote

    When you add controls to the ControlCollection object using the Add method, they are placed in the collection in the order they are processed. If you want to add a control to a specific position in the collection, use the AddAt method and specify the index location where you want to store the control.

 
    
<%@ Page Language="C#" %>
<%@ Reference Control="~/Controls/Spinner.ascx" %>    
<script runat="server">
private ASP.Spinner Spinner1

protected void Page_Load(object sender, EventArgs e)
{
   Spinner1 = (ASP.Spinner)LoadControl("~/Controls/Spinner.ascx");
}

protected void Button1_Click(object sender, EventArgs e)
{
    PlaceHolder1.Controls.Add(Spinner1);
}
</script>

<html>
<head id="Head1" runat="server">
  <title>Load User Control Programmatically</title>
</head>
<body>
  <form id="form1" runat="server">
    <div>
      <asp:PlaceHolder runat="server" ID="PlaceHolder1" />
      <br />
      <asp:Button ID="Button1" runat="server" 
        Text="Click to Add User Control" 
        OnClick="Button1_Click" />
      <br />
      <br />
      <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
    </div>
  </form>
</body>
</html>
 
    

reference:http://msdn.microsoft.com/en-us/library/c0az2h86(v=vs.100).aspx

 

转载于:https://www.cnblogs.com/joe-yang/archive/2012/04/28/2474836.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值