在主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);