您的位置:首页 > 编程语言 > ASP

ASP.NET动态加载用户控件的实现方法

2013-08-13 20:52 736 查看
第一步:例如用户控件放在MyList.Ascx,然后其Control指令是: 

复制代码 代码如下:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ViewComment.ascx.cs" Inherits="Control_ViewComment"%> 

这时候已经有了Inherits,自带了ClassName就是其名称,如果没有,则必须创建ClassName属性。 

假设其有公共属性ID。 

第二步:在某一个ASPX文件需要动态加载的话首先使用 

复制代码 代码如下:

<%@ Reference Control="MyList.Ascx" %> 

<%@ Page Language="C#" CodeFile="GetAscx.aspx.cs" Inherits="AdEntity_GetAscx" %> 

引用,这时候在代码页GetAscx.aspx.cs可以动态加载ASCX控件了: 
Control_ViewComment ctrl = (Control_ViewComment)Page.LoadControl("~/Control/ViewComment.ascx");
ctrl.ID = Request["AdentityId"];
base.Controls.Add(ctrl); 方法三: 利用Page.Pase方法动态加载控件

对于通过Page.ParseControl()方法来动态加载的用户控件我们可以这样做:

Control control = this.Page.ParseControl(@"<%@ Register Src=""TestControl .ascx"" TagName=""TestControl"" TagPrefix=""MyControl"" %> <MyControl:TestControl ID=""TestControl1 runat=""server"" />");
this.Page.Controls.Add(control);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c#