2013-03-18 52 views
0

我想註冊(或引用)並以編程方式從後面的代碼處理UserControl。我GOOGLE了很多,但沒有找到一個有用的解決方案來註冊或引用UserControl。如何從後面的代碼以編程方式註冊和處理UserControl?

編輯:

我做了如下:

ASPX頁面:

<%@ Reference Control="~/ucContents.ascx" %> 

ASPX頁面背後的代碼:

Control Contents1 = null; 
    try 
    { 
     Contents1 = LoadControl("~/ucContents.ascx"); 
     if (Contents1 != null) 
     { 
      ((ucContents)Contents1).CatID = Request.QueryString["catid"]; 
     } 
    } 
    catch 
    { } 

我想知道這是有可能在''參考作業(<%@ Reference Control =「〜/ ucContents.ascx」%> '後面的代碼'也是動態的?

+0

你的意思是在運行時動態加載UserControl? – Win 2013-03-18 16:36:49

+0

目前還不清楚這裏要問什麼。請提供更多關於您想要實現的信息,以便我們可以爲您提供幫助。 – magnattic 2013-03-18 16:43:24

+1

我會通知你,你永遠不應該拋棄異常。您將不知道該try/catch塊中引發了哪些異常。 – 2013-03-18 17:42:40

回答

3

是的,你可以加載UserControl動態喜歡的方式,你貼 -

try { 
    var ucContents = LoadControl("~/ucContents.ascx") as ucContents;  
    PlaceHolder1.Controls.Add(ucContents); 
    ucContents.CatID = Request.QueryString["catid"]; 
} 
.... 

注意:您不需要添加父頁面的ASPX Reference標籤,如果你動態加載。

+0

它沒有工作。當我刪除引用時,「ucContents」無法在(LoadControl(「〜/ ucContents.ascx」)中作爲ucContents;)訪問。 – Kardo 2013-03-18 17:47:43

+1

我的意思是你不需要'<%@ Reference Control =「〜/ ucContents.ascx」%>'在ASPX頁面中,而不是把它放在後面的代碼中作爲'using'。 – Win 2013-03-18 17:50:30

+0

我明白了。非常感謝您的回覆:) – Kardo 2013-03-18 17:56:01

相關問題