动态添加用户控件

本篇教你动态添加用户控件。

 

为了让用户控件能ASP.NET页面实现动态添加,首先写一个接口IGetUCable,这个接口有一个函数,返回对象类型是UserControl。

ExpandedBlockStart.gif View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;

///   <summary>
///  Summary description for IGetUCable
///   </summary>
namespace Insus.NET
{
     public  interface IGetUCable
    {
        UserControl GetUC();    
    }
}


有了接口之后,需要创建用户控件Calculator.ascx: 

ExpandedBlockStart.gif View Code
<% @ Control Language = " C# "  AutoEventWireup = " true "  CodeFile = " Calculator.ascx.cs "  Inherits = " Calculator "   %>
Number A:  < asp:TextBox  ID ="TextBox1"  runat ="server" ></ asp:TextBox >  < br  />
< br  />
Number B:  < asp:TextBox  ID ="TextBox2"  runat ="server" ></ asp:TextBox >< br  />
< asp:Button  ID ="ButtonEqual"  runat ="server"  Text ="="  
    OnClick
="ButtonEqual_Click1"   />
< br  />
Result:  < asp:Label  ID ="LabelResult"  runat ="server"  Text ="" ></ asp:Label >

  

 Calculator.ascx.cs,cs实现接口:

ExpandedBlockStart.gif View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Insus.NET;

public  partial  class Calculator : System.Web.UI.UserControl,IGetUCable 
{       
     protected  void Page_Load( object sender, EventArgs e)
    {

    }

     protected  void ButtonEqual_Click1( object sender, EventArgs e)
    {
         decimal a =  decimal.Parse( this.TextBox1.Text.Trim());
         decimal b =  decimal.Parse( this.TextBox2.Text.Trim());

         this.LabelResult.Text = (a + b).ToString ();
    }

     public UserControl GetUC()
    {
         return  this;
    }  
}

 

 最后是在需要加载用户控件的aspx的Page_load事件写:

ExpandedBlockStart.gif View Code
  protected  void Page_Load( object sender, EventArgs e)
    {
        IGetUCable uc1 = (IGetUCable)LoadControl( " ~/Calculator.ascx ");
         this.form1.Controls.Add(uc1.GetUC());
    }

 

 用户控件加载之后运行效果:

 

源程序(.NET3.5 + ASP.NET + C#)

 http://download.cnblogs.com/insus/ASPDOTNET/DynamicallyLoadingUserControl.rar

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值