这篇文章主要介绍了ASP.NET动态添加用户控件的方法,涉及asp.net用户控件的动态创建与使用技巧,需要的朋友可以参考下
本文实例讲述了ASP.NET动态添加用户控件的方法。分享给大家供大家参考。具体实现方法如下:
为了让用户控件能ASP.NET页面实现动态添加,首先写一个接口IGetUCable,这个接口有一个函数,返回对象类型是UserControl.
?123456789101112131415usingSystem;using System.Collections.Generic;using System.Linq;usingSystem.Web;using System.Web.UI;/// <summary>/// Summary description forIGetUCable/// </summary>namespace Insus.NET{public interface IGetUCable{UserControl GetUC();}}
有了接口之后,需要创建用户控件Calculator.ascx:
?12345678<%@Control Language="C#" AutoEventWireup="true"CodeFile="Calculator.ascx.cs" Inherits="Calculator"%>Number A: <asp:TextBox ID="TextBox1"runat="server"></asp:TextBox> <br />+ <br />NumberB: <asp:TextBox ID="TextBox2"runat="server"></asp:TextBox><br /><asp:ButtonID="ButtonEqual" runat="server" 注释Text="="OnClick="ButtonEqual_Click1"/><br />Result: <asp:Label ID="LabelResult" runat="server"Text=""></asp:Label>
Calculator.ascx.cs,cs实现接口:
?1234567891011121314151617181920212223usingSystem;using System.Collections.Generic;using System.Linq;usingSystem.Web;using System.Web.UI;using System.Web.UI.WebControls;usingInsus.NET;public partial class Calculator : System.Web.UI.UserControl,IGetUCable{protected void Page_Load(object sender, EventArgs e) { } protected voidButtonEqual_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事件写:
?12345protectedvoid Page_Load(object sender, EventArgs e){ IGetUCable uc1 =(IGetUCable)LoadControl("~/Calculator.ascx");this.form1.Controls.Add(uc1.GetUC());}