2010-12-23 55 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

相关问题