我的页面内有页面和调用方法。我想在该方法中为我的页面Control(不是页面本身)添加一些控件。
我的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>
和Code Behind:
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);
}
}
}
这可能吗?
更新:感谢@The King。
答案 0 :(得分: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());
}
}
}
}
请参阅我的旧答案的修订历史......
答案 1 :(得分:0)