当前位置:  开发笔记 > 编程语言 > 正文

以编程方式添加用户控件不会创建其子控件

如何解决《以编程方式添加用户控件不会创建其子控件》经验,为你挑选了1个好方法。

我在项目中有一个用户控件(.ascx),我在页面的Page_Load事件处理程序中以编程方式添加到页面中,如下所示:

Controls.Add(new MyProject.Controls.ControlWidget());
Databind();

当我尝试从控件本身访问控件的子控件时,它们不存在.

public override void DataBind()
{
  myrepeater.DataSource = GetDataSource(); 
  // throws an exception because myrepeater is null

  base.DataBind();
}

如何访问用户控件的子控件?我已经尝试将一个对EnsureChildControls()的调用添加到我的DataBind()覆盖中,但这似乎没有什么区别.



1> Steven Robbi..:

您需要使用LoadControl来加载它,而不仅仅是实例化类.LoadControl在幕后做"神奇",将所有内容绑定并实例化前端.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有