天天看點

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

繼續閱讀