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が返されます! 何が起こっているか知っている人はいますか?この問題を解決するにはどうすればよいですか?
ところで: コード ブロックが含まれていると例外が発生するため、 CustomControl
inCreateChildControls
メソッドを追加できません。CustomContainer
コントロールにコード ブロック (つまり <% ... %>) が含まれているため、Controls コレクションを変更できません。