我正在尝试编写一个方法来动态加载给定页面的控件集合,以便我可以遍历它并创建驻留在页面上的某些类型的控件的列表。这个想法是,对于从特定页面类继承的任何页面,我想编译一个具有某些属性的可编辑字段列表。这一切都发生在这些页面之外(在允许用户管理这些其他页面的不同页面上)。
我尝试了以下两种情况:
BasePage page = (BasePage)System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(string.Format("~/Pages/{0}/Manage.aspx", type.ToString()), typeof(BasePage));
IHttpHandler handler = PageParser.GetCompiledPageInstance(string.Format("~/Pages/{0}/Manage.aspx", type.ToString()), Context.Server.MapPath(string.Format("~/Pages/{0}/Manage.aspx", type.ToString())), HttpContext.Current);
BasePage page = handler as BasePage;
在这两种情况下,页面变量都已启动,但控件集合为空白,可能是因为这两种方法都只加载代码隐藏而不是标记。如何动态加载页面的控件集合?