动态地将控件添加到母版页

时间:2009-11-29 01:35:46

标签: c# asp.net

我遇到了将控件动态加载到母版页的ContentPlaceHolder中的问题。

ContentPlaceHolder的名称和UserControl的路径从db加载并发送到这个小代码:

  

控制c = this.Page.LoadControl(uc-path-from-db);
  this.Page.Master.FindControl(CPH-名称从-DB).Controls.Add(C);

当我运行它时,我收到此错误:

  

无法修改Controls集合,因为该控件包含代码块(即<%...%>)。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

如果没有你的标记,它并不完全清楚,但它告诉你你不能在那里添加控件,因为你的一些标记包含<%...%>阻止它告诉ASP.NET执行其中的任何内容来创建标记。尝试删除你的<%...%>块,它应该让你添加控件。或者发布您的标记以获得更完整的答案。

答案 1 :(得分:0)

根据您正在使用的网络项目的类型,您必须确保<%@ Register%>你正在加载它的MasterPage上的UserControl,以及你正在加载它的页面。如果您正在使用Web 站点而不是Web 应用程序,它会将每个页面编译成小程序集,并且不会引用usercontrol的程序集,除非它看到该参考标记中的标记。

我不是百分之百,但值得一看。