【发布时间】:2011-11-30 12:57:45
【问题描述】:
我正在使用Panel控件创建一个容器,如下所示:
public class CustomContainer : Panel
{
public override void RenderBeginTag(HtmlTextWriter writer)
{
var control this.Page.LoadControl("web user control path.ascx");
control.ID = "userControlId";
control.RenderControl(writer);
base.RenderBeginTag(writer);
}
public void ShowMessage(string message)
{
var control = this.FindControl("userControlId"); // control here is null!!
var custom = control as CustomControl;
custom.Message = message;
}
}
当我试图找到我渲染的 ID 为 userControlId 的控件时,它总是返回 null!
有谁知道发生了什么?我该如何解决这个问题?
顺便说一句:我无法在CreateChildControls 方法中添加CustomControl,因为如果CustomContainer 有代码块,我就会遇到异常!
无法修改 Controls 集合,因为该控件 包含代码块(即 )。
【问题讨论】:
标签: asp.net user-controls overriding findcontrol webusercontrol