2010-12-23 30 views
2

我在頁面中有頁面和調用方法。我想添加一些控制到我的頁面控制(不是頁面本身)在該方法。將UserControl添加到頁面來自另一個類

我的Default.aspx:

<%@ Page Title="Home Page" MasterPageFile="~/Site.master" ... %> 

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
    <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder> 
</asp:Content> 

和代碼背後:

namespace Program 
{ 
    public partail class Default : Page 
    { 
     protected void Page_Load(object sender, Eventargs e) 
     { 
       MyClass.Calling(this); 
     } 
    } 
} 

我的另一個類

namespace Program 
{ 
    public class MyClass 
    { 
     public static void Calling(Page page) 
     { 
       Textbox txt = new Textbox() 
       // I want somthing like this: 
       // page.PlaceHolder1.Controls.Add(txt); 
     } 
    } 
} 

這可能嗎?

更新:感謝@國王。

回答

4

我對我以前的工作不給你..我只是寫它從我的記憶...在這裏回答對不起的就是一個可行的解決方案......你首先需要找到尋找你的佔位符前的內容佔位......

注:請使用ContentPlaceHolderID而不是內容標籤的ID ...

namespace Program 
{ 
    public class MyClass 
    { 
     public static void Calling(Page page) 
     { 
      ContentPlaceHolder cph = page.Master.FindControl("ContentPlaceHolder1") as ContentPlaceHolder; 
      if (cph == null) 
      { 
        return; 
      } 

      PlaceHolder ph = cph.FindControl("PlaceHolder1") as PlaceHolder; 
      if (ph != null) 
      { 
       ph.Controls.Add(new TextBox()); 
      } 
     } 
    } 
} 

請參閱修訂歷史記錄我的老ANSW ers ...

+0

我試試看!!!但ph值爲空... – Raika 2010-12-23 14:40:53

相關問題