asp.net动态加载ascx用户控件
2014-06-25 11:50
591 查看
原文:
asp.net动态加载ascx用户控件
在主aspx/ascx文件中,将目标ascx1,ascx2控件拖拉到其页面中,然后删除,目的是要生成:Register 代码,然后在主文件中定义DIV或Td之类的,设置ID ,runat="server",接下来LoadControl("ascx1")
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="loginState.ascx.cs" Inherits="v3_loginState" %>
<%@ Register Src="loginState1.ascx" TagName="loginState1" TagPrefix="uc1" %>
<%@ Register Src="loginState2.ascx" TagName="loginState2" TagPrefix="uc2" %>
<%@ Register Src="loginState3.ascx" TagName="loginState3" TagPrefix="uc3" %>
<link href="../v3/css.css" rel="stylesheet" type="text/css" />
<div id="logState" runat="server">
</div>
----------------
//是否登录
if (Session["VIPUSERNAME"] == null)
{
//没有登录
ct = LoadControl("loginState1.ascx");
}
else
{}
logState.Controls.Clear();
logState.Controls.Add(ct);
----------------------
网上其它文章:
~动态加ascx~
// .aspx
例如:定义一个 <div id= "test " runat= "server " >
// .aspx.cs
Control uc = Page.LoadControl( "你的.ascx路径 ");
test.Controls.Add(uc);
这时就可以显示控件uc的内容.其中要调用的控件要注册到本页面
《详细》
private CreateContorlUI SingleUIControl;//声明用户控件
private void ControlAdd()
{
SingleUIControl = (CreateContorlUI)Page.LoadControl( "CreateSingleUI.ascx ");//加载用户控件,这里用户控件和页面在同一个目录
SingleUIControl.ID = "SingelUI ";//设置用户控件ID
this.PlaceHolderSingle.Controls.Add(SingleUIControl);//添加用户控件到页面
}
--------------
步骤一: 把ascx控件拖入设计窗口,然后转入html模式,保留定义
如果你需要多个ascx的话,请全部拖入。
但是把相应的内容删除。(因为我们需要动态加载)
在需要填入控件的地方,放个容器,比如td,并设定在服务器端运行
如
<TD id="tdpan" runat=server></TD>
2:动态调用
UserControl myusercontrol = (UserControl) LoadControl ("../includes/pageNavigater.ascx") ;
Type myusertype = myusercontrol.GetType();
//下面是给ascx赋值
PropertyInfo myuserinfo1 = myusertype.GetProperty("RelatedDatagrid");//) .GetProperty("RelatedDatagrid");
myuserinfo1.SetValue(myusercontrol,gridhwcy ,null);
PropertyInfo mypassinfo = myusertype.GetProperty("torefresh");
mypassinfo.SetValue(myusercontrol,true,null );
PropertyInfo myuserdatasource = myusertype.GetProperty("RelatedDataSource");
myuserdatasource.SetValue(myusercontrol,dv,null);
tdpan.Controls.Clear();
tdpan.Controls.Add(myusercontrol);
asp.net动态加载ascx用户控件
在主aspx/ascx文件中,将目标ascx1,ascx2控件拖拉到其页面中,然后删除,目的是要生成:Register 代码,然后在主文件中定义DIV或Td之类的,设置ID ,runat="server",接下来LoadControl("ascx1")
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="loginState.ascx.cs" Inherits="v3_loginState" %>
<%@ Register Src="loginState1.ascx" TagName="loginState1" TagPrefix="uc1" %>
<%@ Register Src="loginState2.ascx" TagName="loginState2" TagPrefix="uc2" %>
<%@ Register Src="loginState3.ascx" TagName="loginState3" TagPrefix="uc3" %>
<link href="../v3/css.css" rel="stylesheet" type="text/css" />
<div id="logState" runat="server">
</div>
----------------
//是否登录
if (Session["VIPUSERNAME"] == null)
{
//没有登录
ct = LoadControl("loginState1.ascx");
}
else
{}
logState.Controls.Clear();
logState.Controls.Add(ct);
----------------------
网上其它文章:
~动态加ascx~
// .aspx
例如:定义一个 <div id= "test " runat= "server " >
// .aspx.cs
Control uc = Page.LoadControl( "你的.ascx路径 ");
test.Controls.Add(uc);
这时就可以显示控件uc的内容.其中要调用的控件要注册到本页面
《详细》
private CreateContorlUI SingleUIControl;//声明用户控件
private void ControlAdd()
{
SingleUIControl = (CreateContorlUI)Page.LoadControl( "CreateSingleUI.ascx ");//加载用户控件,这里用户控件和页面在同一个目录
SingleUIControl.ID = "SingelUI ";//设置用户控件ID
this.PlaceHolderSingle.Controls.Add(SingleUIControl);//添加用户控件到页面
}
--------------
步骤一: 把ascx控件拖入设计窗口,然后转入html模式,保留定义
如果你需要多个ascx的话,请全部拖入。
但是把相应的内容删除。(因为我们需要动态加载)
在需要填入控件的地方,放个容器,比如td,并设定在服务器端运行
如
<TD id="tdpan" runat=server></TD>
2:动态调用
UserControl myusercontrol = (UserControl) LoadControl ("../includes/pageNavigater.ascx") ;
Type myusertype = myusercontrol.GetType();
//下面是给ascx赋值
PropertyInfo myuserinfo1 = myusertype.GetProperty("RelatedDatagrid");//) .GetProperty("RelatedDatagrid");
myuserinfo1.SetValue(myusercontrol,gridhwcy ,null);
PropertyInfo mypassinfo = myusertype.GetProperty("torefresh");
mypassinfo.SetValue(myusercontrol,true,null );
PropertyInfo myuserdatasource = myusertype.GetProperty("RelatedDataSource");
myuserdatasource.SetValue(myusercontrol,dv,null);
tdpan.Controls.Clear();
tdpan.Controls.Add(myusercontrol);
相关文章推荐
- 【转载】asp.net动态加载ascx用户控件
- 关于Asp.net 页面动态加载用户控件,出现“未能加载视图状态”的原因[续]
- Asp 2.0动态加载用户控件(Ascx)
- 在ASP.NET中动态加载内容(用户控件和模板)
- asp.net中动态加载用户控件的办法
- ASP.NET动态加载用户控件的页面生成过程
- 在Asp.Net中动态加载用户控件
- ASP.NET中,动态加载用户控件
- ASP.NET动态加载用户控件的页面生成过程
- Asp.net动态加载用户自定义控件,并转换成HTML代码
- asp.net 动态加载用户控件注意
- asp.net定义用户控件时,属性持久化和如何动态加载的问题
- ASP.NET动态加载用户控件的页面生成过程
- ASP.net中的AJAX学习记录五:动态加载用户控件(Calendar控件为例)
- Asp.net 2.0 动态加载其他子目录用户控件问题
- ASP.NET 页面中动态加载用户控件
- Asp.net开发心得点滴[动态加载的用户控件使用事件委托,交给页面处理的事件无效问题]
- 在ASP.NET中动态加载内容(用户控件和模板)
- asp.net后台动态加载用户控件
- ASP.net中的AJAX学习记录五:动态加载用户控件(Calendar控件为例)