我创建了一个基页面类,它具有一些默认功能,可以将控件添加到页面上的div。此页面名为BasePage。
public abstract class BasePage : System.Web.UI.Page
{
public String FormId;
public BasePage() : this("EntityForm")
{
}
public BasePage(String formId)
{
this.FormId = formId;
}
protected virtual void Page_LoadComplete(object sender, EventArgs e)
{
this.FindControl(this.FormId); // returns null;
}
}
// Derived class
public partial class _default : BasePage
{
public _default("test")
{
}
protected override void Page_Load(object sender, EventArgs e)
{
//base.Page_Load(sender, e);
}
}
// ASPX code
<asp:Content ID="Content1" ContentPlaceHolderID="cphHead" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="cphCenter" runat="server">
<div id="test" runat="server" class="frmData">
</div>
</asp:Content>
我已经为页面提供了相同的功能而没有连接到母版页文件,它可能与此有关。我在这里缺少什么?
答案 0 :(得分:1)
使用递归FindControl扩展方法查找控件:
private Control FindControlRecursive(Control ctrl, string id)
{
if(ctrl.ID == id)
{
return ctrl;
}
foreach (Control child in ctrl.Controls)
{
Control t = FindControlRecursive(child, id);
if (t != null)
{
return t;
}
}
return null;
}